博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD 与 NSOperation 的对比
阅读量:6552 次
发布时间:2019-06-24

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

hot3.png

  • GCD

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

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

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

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

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

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

    • 只能设置队列的优先级

    • 高级功能:

      • 一次性 once

      • 延迟操作 after

      • 调度组

NSOperation

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

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

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

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

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

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

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

  • 高级功能:

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

    • 继续/暂停/全部取消

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

转载于:https://my.oschina.net/TaciturnKnightYQ/blog/614507

你可能感兴趣的文章
简简单单几段代码让自己变成最合格的网站管理员
查看>>
[置顶] 遵循Java EE标准体系的开源GIS服务平台之二:平台部署
查看>>
Java递归算法——阶乘
查看>>
Multi-voltage和power gating的实现
查看>>
解决Mac启动Eclipse Memory Analyzer报错问题
查看>>
连接池并发的实现原理
查看>>
创建Pch预编译文件
查看>>
阿里云Centos配置iptables防火墙
查看>>
PHP面试题汇总
查看>>
理解网站并发量
查看>>
spring整合elasticsearch之环境搭建
查看>>
TensorFlow 架构与设计-编程模型【转】
查看>>
vue 组件编码规范
查看>>
如何通过结构中的某个变量获取结构本身的指针?(container_of详解)
查看>>
2.并发和并行
查看>>
Exchange2007-Exchange2010升级-06 数据库高可用组的创建
查看>>
phpHiveAdmin是如何通过Hive/Hadoop工作的
查看>>
双向链表内结点的删除(4)
查看>>
JSON字符串转成对象
查看>>
SaltStack 中ZMQ升级
查看>>