簡介
併發
(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];
循環
結束
本章到此結束 歡迎各位碼友隨意轉載並指正