博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程
阅读量:4704 次
发布时间:2019-06-10

本文共 1235 字,大约阅读时间需要 4 分钟。

dispatch_queue_t queue=dispatch_queue_create("luoliping", DISPATCH_QUEUE_SERIAL);        dispatch_async(queue, ^{        NSLog(@"%@",[NSThread currentThread]);            });        dispatch_suspend(queue);    dispatch_resume(queue);    dispatch_async(queue, ^{        NSLog(@"%@",[NSThread currentThread]);    });        dispatch_async(queue, ^{        NSLog(@"%@",[NSThread currentThread]);            });        dispatch_async(dispatch_get_global_queue(0, 0), ^{        NSLog(@"2-%d",[NSThread isMainThread]);                dispatch_async(dispatch_get_main_queue(), ^{            NSLog(@"2-%d",[NSThread isMainThread]);            //刷新表            [_tableView reloadData];        });    });

 

NSOperation和GCD的区别

  • NSTread:oc语言,面向对象,简单易用,可直接操作线程对象 ,线程生命周期由程序员管理
  • GCD的使用更轻量级,充分利用设备的多核,线程生命周期自动管理
  • 而NSOperation作为对象提供了更丰富的API,在NSOperationQueue中,可以随时取消要准备执行的任务,能够设置NSOperation的priority(优先级),使之按顺序执行
  • GCD只支持FIFO的队列,NSOperationQueue可以很方便的调整执行顺序,可以添加依赖设置最大并发数量。
  • KVO能应用在NSOperation中,以监听一个Operation是否完成或取消,这样能比GCD更加有效地掌控我们执行的后台任务
  • NSOperation通过继承,可以提高代码的复用度,这比GCD更有自由度和扩展性
  • NSOperationQueue支持KVO,可以检测Operation是否正在执行,是否结束,是否取消。

任务之间不太相互依赖,选用GCD;

任务之间有依赖,或者要监听任务的执行情况:NSOperationQueue

 

 

 

 

gcd面试向

 

 写的挺好的

转载于:https://www.cnblogs.com/chebaodaren/p/5165295.html

你可能感兴趣的文章
杭电之统计汉字
查看>>
笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-07 透视、逆透视及分组集
查看>>
贝叶斯分类器
查看>>
<img>标签
查看>>
python Anaconda
查看>>
第三十五节(java-动态加载级联菜单)
查看>>
android:intent flags
查看>>
SVPWM实现概述
查看>>
Android实现隐藏状态栏和标题栏
查看>>
Vue疑难杂症
查看>>
常用的JQuery数字类型验证正则表达式
查看>>
golang在Windows下Sublime Text开发调试环境的配置
查看>>
spring boot 错误处理之深度历险
查看>>
PHP扩展开发WINDOWS配置
查看>>
Screen2EXE录屏|录制视频
查看>>
二十. StringFromFile与counter函数
查看>>
sqlserver 数据库 的数据库个数统计 表个数统计 表的数据量统计(转载)
查看>>
C++生成随机数
查看>>
raphael 支持group(简)
查看>>
poj 3050 Hopscotch(暴力+dfs)
查看>>