NSCondition实现控制线程的执行顺序

- (void)viewDidLoad {
    [super viewDidLoad];
    _condition = [[NSCondition alloc] init];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [NSThread detachNewThreadWithBlock:^{
        [_condition wait];//让当前线程处于等待状态,直到被唤醒
        for(int i=0;i<50;i++){
            [NSThread sleepForTimeInterval:0.001];
            NSLog(@"222222222222222222");
        }
    }];

    [NSThread detachNewThreadWithBlock:^{
        for(int i=0;i<50;i++){
            [NSThread sleepForTimeInterval:0.001];
            NSLog(@"1111111111111111111111111111");
        }
        [_condition signal];//发出信号,唤醒一个正在等待的线程。您可以使用该方法唤醒一个正在等待条件的线程。您可以多次调用这个方法来唤醒多个线程。如果没有线程在等待条件,这个方法就什么也不做。
    }];
}

最终的输出是:先输出所有的1,然后再输出所有的2

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,134评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,261评论 25 708
  • 月圆秋夜折香桂,曳霞帔、叠珠翠。 款款风情谁妩媚? 墨菊初绽,蕙兰献蕊,一任芳心醉。 薄云如匹芦荻坠,月洒清辉柳塘...
    不惑而歌阅读 808评论 41 49
  • 楼下出远门的女人回来了,她的小女儿几乎是小跑上去“妈妈,妈妈,我好想你呀,你终于回来了!” 好像很久很久以前,我也...
    六月的雨_Cyy阅读 467评论 0 0
  • 最近在追剧《锦绣未央》,剧中的李未央屡次遭人陷害,那种陷害全是事关生死的陷害,稍一不留神就会送命。 而李未央每次都...
    小美的鹅会下蛋阅读 656评论 1 4

友情链接更多精彩内容