任务之间的依赖(NSOperation)

//任务依赖:如果A依赖B,等B执行完成后,再去执行A

-(void)dependency

{

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

    NSBlockOperation *bp1 = [NSBlockOperation blockOperationWithBlock:^{

        for (int i = 0; i < 10; i++) {

             NSLog(@"--1-%@-",[NSThread currentThread]);

        }

       

    }];

    NSBlockOperation *bp2 = [NSBlockOperation blockOperationWithBlock:^{

        for (int i = 0; i < 10; i++) {

            NSLog(@"--2-%@-",[NSThread currentThread]);

        }

        

    }];

    NSBlockOperation *bp3 = [NSBlockOperation blockOperationWithBlock:^{

        for (int i = 0; i < 10; i++) {

            NSLog(@"--3-%@-",[NSThread currentThread]);

        }

        

    }];

    //添加12间的依赖,前者依赖后者,先执行后者,在执行前者

    //注意:任务之间不能相互依赖

    [bp1 addDependency:bp2];

    [queue addOperation:bp1];

    [queue addOperation:bp2];

    [queue addOperation:bp3];

}

原文地址:https://www.cnblogs.com/PJXWang/p/5951726.html