GCD 与 NSOperation 的对比

  • GCDweb

    • 任务(block)添加到队列(串行/并发/主队列),而且指定任务执行的函数(同步/异步)数据结构

    • GCD是底层的C语言构成的API并发

    • iOS 4.0 推出的,针对多核处理器的并发技术框架

    • 在队列中执行的是由 block 构成的任务,这是一个轻量级的数据结构异步

    • 要中止已经加入 queue 的 block 须要写复杂的代码函数

    • 须要经过 Barrier 或者同步任务设置任务之间的依赖关系code

    • 只能设置队列的优先级对象

    • 高级功能:队列

      • 一次性 once同步

      • 延迟操做 after

      • 调度组


  • NSOperation

    • 核心概念:把操做(异步)添加到队列(全局的并发队列)

    • OC 框架,更加面向对象,是对 GCD 的封装

    • iOS 2.0 推出的,苹果推出 GCD 以后,对 NSOperation 的底层所有重写

    • Operation做为一个对象,为咱们提供了更多的选择

    • 能够随时取消已经设定要准备执行的任务,已经执行的除外

    • 能够跨队列设置操做的依赖关系

    • 能够设置队列中每个操做的优先级

    • 高级功能:

      • 最大操做并发数(GCD很差作)

      • 继续/暂停/所有取消

      • 跨队列设置操做的依赖关系

相关文章
相关标签/搜索