ios多线程操作(九)—— 用NSOperation代替GCD

     NSOperation是另外一个“并发技术”,它可以使开发者在不用关心线程的情况下进行多线程操作!!!
     NSOperation的底层是用GCD进行封装,但并不是说NSOperation功能就没有GCD强大,相反,NSOperation的一些高级功能在GCD上不好做,但同样地GCD上的一些高级功能在NSOperation上也不好做,现在来看一下NSOperation和GCD的对比!
     NSOperation
         * 核心概念:把"操作(异步)"添加到队列(全局的并发队列)!
         * 主队列 为mainQueue
         * OC 的框架,更加面向对象
         * 是对 GCD 的封装
         * iOS 2.0 推出的,苹果在推出 GCD 之后,对 NSOperation 的底层全部重写了!
         * 高级功能:
              1、最大操作并发数(GCD不好做)
              2、在 iOS 7.0 之前,使用 GCD 和 NSOperation 能够开启的线程数都不多,5~6条
              3、从 iOS 8.0 开始,NSOperation能够开很多个线程,如果不控制,会造成资源浪费     
              4、具备继续,暂停,全部取消功能
              5、设置操作之间的依赖关系(GCD中,同步任务是来指定依赖关系!)
      GCD
          * 将"任务(block)"添加到队列(串行/并发/主队列),并且指定任务执行的函数(同步/异步)
          * C 语言的框架,dispatch_xxx 函数
          * iOS 4.0 推出的,针对多核处理器的并发技术
          * 高级功能:
             1、一次性 dispatch_once_t
             2、延迟操作 after
             3、调度组 (op 可以做,但是做不了太复杂)
相信看完NSOperation和GCD的对比,每个人对多线程操作的都会有自己的看法和选择!


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。