Mac OS, iOS多线程开发指南,apple官方文档翻译稿


这篇这是集大全

http://www.dreamingwish.com/dream-category/toturial/ios-mulit-thread-program-guide


(我靠,这个需要翻墙么?

还是网站挂了)


NSOperation, NSOperationQueue要点小记:

一,非并发的operation.

1.覆盖main方法,添加自己的事务逻辑。加入到queue中。系统即可自行启动线程执行。

2.在main中检测isCancelled,并添加autoreleasepool及exception的处理。


二,并发的operation

operation默认以同步方式执行。operation queue为operation提供了线程支持。operation的执行因此还是可以看做是异步的。

如果需要手动执行并发operation,需要其相对调用线程为异步,那么operation需要:

1.覆盖start,isExecuting,isFinished,isCouncurrent.

2.isConcurrent 返回为YES.

3.设置成员变量控制executing和finishing.

4.在相应的逻辑改变KVO的isExecuting,isFinishing key的值。

5.可以在start中做状态的初始化工作,在main中做具体任务的执行。(start中的写法与非并发中的mian一样)

6.手动执行operation需要调用isConcurrent.


三,简单快速的并发operation.

1.NSInvocationOperation

2.NSBlockOperation, 执行时,自身在独立线程中,将所有block提交到并发的dispatch queue,等待所有block完成后标记自己完成。

executing和finish时不可添加block。


四,operation的执行

1.一般情况添加到operation queue中的operation短时间内即被执行。

2.可添加一组operations:addOperations:waitUntilFinished: 。

或者直接添加block到queue:addOperationWithBlock:


-------------------------------------------------------------------------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值