标签:
- (void)viewDidLoad {
[super viewDidLoad];
/*
NSOperation和NSOperationQueue实现多线程编程
步骤:将执行的操作封装到NSOperation对象中
将NSOperation对象添加到NSOperationQueue中
系统将NSOperation对象取出来
将封装的操作放到一条新线程执行
NSOperation的子类:
NSInvocationOperation 封装 initWithTarget:selector:object:
执行 -start 默认在主线程只有添加到队列才会开启新线程即默认是同步执行
NSBlockOperation 创建 +blockOperationWithBlock:^{}
添加操作 -addExecutionBlock:^{};可以多次添加 只要封装的操作大于1,就会异步
执行 start
子定义继承
NSOperationQueue的作用:start可以执行但是是同步的,这个是异步的,只要添加进去自动执行操作,自动开启线程
方法:1.addOperation: 2.addOperationWithBlock:^{}
*/
/*并发数:同时执行的任务数
最大并发数(一般2-3个最好)的相关方法:-(NSInteger)maxConcurrentOperationCount
-(void)setMaxConcurrentOperationCount:
取消队列的操作:-(void)cancleAllOperation
-(void)cancle
暂停和恢复:开启线程下载界面时,对UI会有影响,可在用户滑动界面时暂停
-(void)setSuspended:
-(BOOL)isSuspended当前状态
操作优先级:设置NSOperation在queue的优先级
-(NSOperationQueuePriority)queuePriority;
-(void)setQueuePriority:
操作依赖:[operationB addDependency:operationA];操作B依赖操作A,一定要在添加到队列之前设置
操作的监听:-completionBlock:
-setCompletionBlock:
例子:operation.completionBlock=^{}上一个任务结束就会执行这个代码段
*/
}
iOS开发多线程之NSOperation NSOperationQueue
标签:
原文地址:http://www.cnblogs.com/haugezi/p/4856349.html