iOS的三種多執行緒技術 對比分析
阿新 • • 發佈:2019-01-10
1 #pragma mark 模仿下載網路影象 2 - (IBAction)operationDemo3:(id)sender 3 { 4 // 1. 下載 5 NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{ 6 NSLog(@"下載 %@" , [NSThread currentThread]); 7 }]; 8 // 2. 濾鏡 9 NSBlockOperation *op2 = [NSBlockOperation blockOperationWithBlock:^{10 NSLog(@"濾鏡 %@" , [NSThread currentThread]); 11 }]; 12 // 3. 顯示 13 NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{ 14 NSLog(@"更新UI %@" , [NSThread currentThread]); 15 }]; 16 17 // 新增操作之間的依賴關係,所謂“依賴”關係,就是等待前一個任務完成後,後一個任務才能啟動 18 // 依賴關係可以跨執行緒佇列實現19 // 提示:在指定依賴關係時,注意不要迴圈依賴,否則不工作。 20 [op2 addDependency:op1]; 21 [op3 addDependency:op2]; 22 // [op1 addDependency:op3]; 23 24 [_queue addOperation:op1]; 25 [_queue addOperation:op2]; 26 [[NSOperationQueue mainQueue] addOperation:op3]; 27 }