移动开发iOS 开发 iOS Developer

用NSOperation和NSOperationQueue处理多

2016-08-08  本文已影响311人  張贺
图片来自500px

文 || 張贺

NSOperation

NSInvocationOperation
NSBlockOperation

注意:只要NSBlockOperation封装的操作数 > 1,就会异步执行操作

自定义NSOperation

NSOperationQueue

最大并发数maxConcurrentOperationCount
队列的取消、暂停、恢复

暂停和恢复队列
- (void)setSuspended:(BOOL)b; // YES代表暂停队列,NO代表恢复队列
- (BOOL)isSuspended;

操作依赖
操作监听

可以监听一个操作的执行完毕
- (void (^)(void))completionBlock;
- (void)setCompletionBlock:(void (^)(void))block;

线程间通信

小结

我们可以配合使用NSOperation和NSOperationQueue实现多线程编程,实现步骤大致是这样的:
1、先将需要执行的操作封装到一个NSOperation对象中
2、然后将NSOperation对象添加到NSOperationQueue中
3、系统会自动将NSOperation中封装的操作放到一条新线程中执行

在此过程中,我们根本不用考虑线程的生命周期、同步、加锁等问题

上一篇 下一篇

猜你喜欢

热点阅读