iOS NSOperation Wait

20 篇文章 1 订阅

 一. 

    NSBlockOperation *blockOperation1 = [[NSBlockOperation alloc] init];

    [blockOperation1 addExecutionBlock:^{

        sleep(10);

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

    }];

    

    NSBlockOperation *blockOperation2 = [[NSBlockOperation alloc] init];

    [blockOperation2 addExecutionBlock:^{

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

    }];

    

    [blockOperation2 addDependency:blockOperation1];

    

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

    [queue setMaxConcurrentOperationCount:3];

    [queue addOperation:blockOperation1];

    [queue addOperation:blockOperation2];

输出:

2017-05-10 10:59:45.944 Test[56988:15115122] ------111----<NSThread: 0x600000069600>{number = 3, name = (null)}---

2017-05-10 10:59:45.944 Test[56988:15115121] ------222----<NSThread: 0x61000006c7c0>{number = 4, name = (null)}---


   

二.

   NSBlockOperation *blockOperation1 = [[NSBlockOperationalloc] init];

    [blockOperation1 addExecutionBlock:^{

        sleep(10);

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

    }];

    

    NSBlockOperation *blockOperation2 = [[NSBlockOperation alloc] init];

    [blockOperation2 addExecutionBlock:^{

        [blockOperation1 waitUntilFinished];  //blockOperation1 完成之后才会执行下面的语句

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

    }];

      

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

    [queue setMaxConcurrentOperationCount:3];

    [queue addOperation:blockOperation1];

    [queue addOperation:blockOperation2];

输出:    

2017-05-10 11:00:47.358 Test[57014:15117738] ------111----<NSThread: 0x610000071580>{number = 3, name = (null)}---

2017-05-10 11:00:47.359 Test[57014:15117761] ------222----<NSThread: 0x610000073700>{number = 4, name = (null)}---


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值