iOS 任务的依赖操作

时间:2022-01-01 09:14:59

-(void)dependency{

/**

假设有A、B~C三个操作,要求:

1. 3个操作都异步执行

2. 操作C依赖于操作B

3. 操作B依赖于操作A

*/

//创建一个队列

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

//可开辟线程的最大数量

queue.maxConcurrentOperationCount = 3;

//创建三个任务

NSBlockOperation *operationA = [NSBlockOperation blockOperationWithBlock:^{

//  A 任务

}];

NSBlockOperation *operationB = [NSBlockOperation blockOperationWithBlock:^{

// B 任务

}];

NSBlockOperation *operationC = [NSBlockOperation blockOperationWithBlock:^{

// C 任务

}];

//设置三个任务相互依赖

// operationB 任务依赖于 operationA

[operationB addDependency:operationA];

//operationC 任务依赖于 operationB

[operationC addDependency:operationB];

//添加操作到队列中(自动异步执行任务,并发)

[queue addOperation:operationA];

[queue addOperation:operationB];

[queue addOperation:operationC];

}

//A,B,C 三个任务 依次执行 程序中的操作,事件之间的相互依赖关系 按顺序执行