简介
并发
(1)该属性控制队列是串行执行仍是并发执行code
(2)若是最大并发数等于1,那么该队列是串行的,若是大于1那么是并行的blog
(3)系统的最大并发数有个默认的值,为-1,若是该属性设置为0,那么不会执行任何任务代码
队列
//1.建立队列 NSOperationQueue *queue = [[NSOperationQueue alloc]init]; //2.设置最大并发数 queue.maxConcurrentOperationCount = 2;
补充
get
- (void)cancelAllOperations 取消队列的全部操做。 也能够调用:NSOperation的-(void)cancel方法取消单个操做 @property (getter=isSuspended) BOOL suspended; - setSuspended:(BOOL)b YES表示暂停队列,NO表示回复队列 if (self.opQueue.isSuspended) { NSLog(@"继续"); self.opQueue.suspended = NO; } else { NSLog(@"暂停"); self.opQueue.suspended = YES; }
简介
it
一、创建操做之间的执行顺序关系 二、若要创建操做之间的依赖关系,必须在操做被添加到队列以前创建
代码
io
-(void)demo{ //建立队列 NSOperationQueue *queue = [[NSOperationQueue alloc] init]; //建立三个任务 NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{ //任务1代码 NSLog(@"operation1----%@",[NSThread currentThread]); }]; NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{ //任务2代码 NSLog(@"operation2----%@",[NSThread currentThread]); }]; NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{ //任务3代码 NSLog(@"operation3----%@",[NSThread currentThread]); }]; //operation1 依赖于 operation2 [operation1 addDependency:operation2]; //operation2 依赖于 operation3 [operation2 addDependency:operation3]; //添加到队列中区 [queue addOperation:operation1]; [queue addOperation:operation2]; [queue addOperation:operation3]; NSLog(@"-------------------"); }
补充
class
不能循环依赖(不能A依赖于B,B又依赖于A)。
objc //把上处地方更改一下 //operation1 依赖于 operation2 [operation3 addDependency:operation2]; //operation2 依赖于 operation3 [operation2 addDependency:operation3];
循环
结束
本章到此结束 欢迎各位码友随意转载并指正