標籤:lock enc nal dep 列印 queue 隊列 實用 作用
依賴的作用: 在iOS開發中,我們經常會用到一個線程需要等待另一個結束才能進行的需求,這種需求其實有很實用的解決辦法.下面我將列舉一些目前用到的方法:
//需求:: 用NSOpertion和NSOpertionQueue處理A,B,C,D,E三個線程,要求執行完A,B,D,E後才能執行C,怎麼做?
// 建立隊列
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
// 建立5個操作
NSOperation *a = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"operation---a");
}];
NSOperation *b = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"operation---b");
}];
NSOperation *c = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"**************c");
}];
NSOperation *d = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"operation---d");
}];
NSOperation *e = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"operation---e");
}];
// 添加依賴
[c addDependency:a];
[c addDependency:b];
[c addDependency:d];
[c addDependency:e];
// 執行操作
[queue addOperation:a];
[queue addOperation:b];
[queue addOperation:c];
[queue addOperation:d];
[queue addOperation:e];
列印結果:
2017-08-17 18:38:02.040 依賴[11633:750843] operation---a
2017-08-17 18:38:02.040 依賴[11633:757610] operation---b
2017-08-17 18:38:02.040 依賴[11633:757611] operation---d
2017-08-17 18:38:02.040 依賴[11633:757612] operation---e
2017-08-17 18:38:02.042 依賴[11633:757610] **************c
iOS線程依賴