| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
KarMacartne
9年前发布

GCD 与 NSOperation 的对比

来自: http://my.oschina.net/TaciturnKnightYQ/blog/614507


  • GCD

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

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

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

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

    • 要停止已经加入 queue 的 block 需要写复杂的代码

    • 需要通过 Barrier 或者同步任务设置任务之间的依赖关系

    • 只能设置队列的优先级

    • 高级功能:

      • 一次性 once

      • 延迟操作 after

      • 调度组

       

  • NSOperation

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

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

    • iOS 2.0 推出的,苹果推出 GCD 之后,对 NSOperation 的底层全部重写

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

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

    • 可以跨队列设置操作的依赖关系

    • 可以设置队列中每一个操作的优先级

    • 高级功能:

      • 最大操作并发数(GCD不好做)

      • 继续/暂停/全部取消

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

 

 本文由用户 KarMacartne 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1455238250120.html
Objective-C开发