NSOperation有两个子类:NSInvocationOperation 和 NSBlockOperation
NSOperation 如果有多个任务事,默认是异步执行的,如下代码。
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"1");
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"2");
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"3");
}];
NSBlockOperation *operation4 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"4");
}];
NSBlockOperation *operation5 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"5");
}];
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[queue addOperation:operation];
[queue addOperation:operation2];
[queue addOperation:operation3];
[queue addOperation:operation4];
[queue addOperation:operation5];
但是把它的最大线程数设置为1,就是同步执行了,个中原理各位看官自己去想
queue.maxConcurrentOperationCount = 1;