美文网首页
iOS多线程中的实际方案之四NSOperation

iOS多线程中的实际方案之四NSOperation

作者: 紫菱清风 | 来源:发表于2016-04-24 11:12 被阅读0次

    四、NSOperation


    • GCD 是 iOS 4.0 的时候引入的(NSOperationQueue也是iOS4.0引入的,并且它的内部就是用GCD 实现的)

    • 将任务(block)添加到队列(串行/并发(全局)),指定 执行任务的方法(同步(阻塞)/异步)

    • 拿到 dispatch_get_main_queue()。 线程间通信

    • NSOperation无法做到,一次性执行,延迟执行,调度组(op相对复杂)

    • 使用block 使得代码简洁了,效率变高了。

    • NSOperation 在 iOS 2.0就出现了 (后来苹果改造了NSOperation的底层)

    • 将操作(异步执行)添加到队列(并发/全局)

    • [NSOperationQueue mainQueue] 主队列。 任务添加到主队列, 就会在主线程执行

    • 提供了一些GCD不好实现的,”最大并发数“

    • 暂停/继续 --- 挂起

    • 取消所有的任务

    • 依赖关系

    • 有KVO,可以监测operation是否正在执行(isExecuted)、是否结- 束(isFinished),是否取消(isCanceld)。

    • NSOperationQueue可以 方便的管理并发、NSOperation之间的优先级。

    • 两者对比:就我在开发中的使用情况来看,不需要用到依赖和最大并发数就用GCD来进行多线程操作,因为苹果对其进行过性能上的优化,效率更高。

    相关文章

      网友评论

          本文标题:iOS多线程中的实际方案之四NSOperation

          本文链接:https://www.haomeiwen.com/subject/gbrfrttx.html