// NSOperation 的第一个子类:NSInvocationOperation(Target思想)
NSInvocationOperation *ope1 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(ope1Action:) object:nil];
NSInvocationOperation *ope2 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(ope2Action:) object:nil];
// 创建任务队列
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
// 设置任务块的最大的最大并发数;(设置为1,就是串行队列,一一执行,失去多线程并发的意义)
queue.maxConcurrentOperationCount = 3;
// 任务块添加到任务队列
[queue addOperation:ope1];
[queue addOperation:ope2];
// 第二种创建任务对列的方式;(不会创建子线程)
// 这种方式特点,队列里的任务,会在主线程,串型完成;
// NSOperationQueue *queue = [NSOperationQueue mainQueue];
// NSOperation 的第二个子类:NSBlockOperation (block思想)
// 任务块
NSBlockOperation *block1 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"任务一:%@,%d", [NSThread currentThread],[NSThread isMainThread]);
}];
NSBlockOperation *block2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"任务二:%@,%d", [NSThread currentThread],[NSThread isMainThread]);
}];
// 任务队列
NSOperationQueue *blockQueue = [[NSOperationQueue alloc]init];
[blockQueue addOperation:block1];
[blockQueue addOperation:block2];