示例代码
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
NSOperationQueue *queue=[[NSOperationQueue alloc]init];
NSOperationQueue *queue2=[[NSOperationQueue alloc]init];
NSBlockOperation *op1=[NSBlockOperation blockOperationWithBlock:^{
NSLog(@"1---------------%@",[NSThread currentThread]);
}];
NSBlockOperation *op2=[NSBlockOperation blockOperationWithBlock:^{
NSLog(@"2---------------%@",[NSThread currentThread]);
}];
NSBlockOperation *op3=[NSBlockOperation blockOperationWithBlock:^{
NSLog(@"3---------------%@",[NSThread currentThread]);
}];
NSBlockOperation *op4=[NSBlockOperation blockOperationWithBlock:^{
NSLog(@"4---------------%@",[NSThread currentThread]);
}];
//操作监听
op3.completionBlock=^{
NSLog(@"++++done");
};
//添加操作依赖 不能循环依赖 可以跨队列依赖
[op1 addDependency:op4];
[op4 addDependency:op3];
[op3 addDependency:op2];
[queue addOperation:op1];
[queue addOperation:op2];
[queue addOperation:op3];
[queue2 addOperation:op4];
}
@end