任务之间的依赖(NSOperation)

Posted PJXWang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任务之间的依赖(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];

}

 

以上是关于任务之间的依赖(NSOperation)的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发多线程编程2 - NSOperation

ios开发多线程一:了解-NSOperation的基本使用

iOS开发NSOperation 三:操作依赖和监听以及线程间通信

GCD和NSOperation 的概念,用法及之间的区别

iOS中用GCD和NSOperation多个异步操作的关联

NSOperation 依赖于不同队列上的另一个操作不会启动