@SanMao
2015-08-07T16:49:41.000000Z
字数 1416
阅读 1434
多线程
使用NSOperation子类的方式有3种
配合使用NSOperation和NSOperationQueue也能实现多线程编程
addExecutionBlock:
追加的任务默认是在子线程中执行NSOperationQueue创建队列后的快速添加任务方法
// 此方法系统内部会自动封装成一个NSBlockOperation然后再添加到队列中
[queue addOperationWithBlock:^{
NSLog(@"4---%@",[NSThread currentThread]);
}];
自定义任务
,继承自NSOperation,实现main方法,在main方法中输入需要执行的任务,将自定义的任务假如队列后,系统会自动在子线程中执行任务maxConcurrentOperationCount最大并发数
默认是并发
,如果设置maxConcurrentOperationCount = 1,就是串行注意
: 不能设置为0, 如果设置为0就不行执行任务suspended暂停任务
cancelAllOperations取消任务方法
addDependency:依赖方法
// op3 依赖 op1,只有等op1的操作做完了以后才会开始op3的操作
[op3 addDependency:op1];
completionBlock:监听方法
- (void (^)(void))completionBlock;
- (void)setCompletionBlock:(void (^)(void))block;