NSOptation 是一个抽象类,主要使用NSOpration的两个子类NSBlockOperation, NSInvocationOperation
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"block 1 start");
sleep(3);
NSLog(@"block 1 end");
//执行的操作1
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"block 2 start");
sleep(2);
NSLog(@"block 2 end");
//执行的操作1
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"block 3 start");
sleep(1);
NSLog(@"block 3 end");
//执行的操作1
}];
//如果queue是main queue, 那么不管maxConcurrentOperationCount是多少,永远是串行的
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.maxConcurrentOperationCount = 2;
[queue addOperations:@[operation1, operation2, operation3] waitUntilFinished:NO];
//不使用队列默认是并发的
// NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
// NSLog(@"block 1 start");
//
// sleep(3);
//
// NSLog(@"block 1 end");
// //执行的操作1
// }];
// [operation addExecutionBlock:^{
// NSLog(@"block 2 start");
//
// sleep(2);
//
// NSLog(@"block 2 end");
// }];
// [operation addExecutionBlock:^{
// NSLog(@"block 3 start");
//
// sleep(1);
//
// NSLog(@"block 3 end");
// }];
//[operation start];
}