GCD

异步技术有两个:

 Grand Central Dispatch(GCD):系统管理线程,你不需要编写线 程代码。只需定义想要执行的任务,然后添加到适当的 dispatch queue。GCD 会负责创建线程和调度你的任务。系统直接提供线 程管理,比应用实现更加高效。

 Operation Queue:Objective-C 对象,类似于 dispatch queue。你 定义想要执行的任务,并添加任务到 operation queue,后者负责 调度和执行这些任务。和 GCD 一样,Operation Queue 也管理了 线程,更加高效。 

Dispatch Queue 是基于 C 的执行自定义任务机制。 

dispatch queue 总是按先进先出的顺序执 行任务 ,operation queues 执行任务时还要根据依赖度等因素来决定执行的顺序。

operations先满足依赖关系,然后再根据优先级从所有 准备好的操作中选择优先级最高的那个执行。 

串行化的 operation queue 并不等同于 GCD 中的串行 dispatch queue。 

从技术角度来看,并发是程序的属性,而并行运作是机器的属性。并行和并发是两种分开的概念。作为程序员,你不能保证你的代码会在能并行执行你的代码的机器上运行。然而,你可以设计你的代码,让它使用并发操作。

 

NSOperation 类有一个相当简短的声明。要定制一个操作,可以遵循以下步骤:

1.继承NSOperation类

2.重写“main”方法

3.在“main”方法中创建一个“autoreleasepool”

4.将你的代码放在“autoreleasepool”中

创建你自己的自动释放池的原因是,你不能访问主线程的自动释放池,所以你应该自己创建一个。

block 实际上由底层数据结构来表示,由编译器负责创建和管理。 

转载于:https://www.cnblogs.com/yanggongfu/p/3821181.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值