美文网首页
2019-05-31

2019-05-31

作者: 月沉眠love | 来源:发表于2019-05-31 10:19 被阅读0次

利用GCD改变Block执行顺序

未修改之前的代码

__block NSString * string = @"normal_String";

    [selfmyBlock:^{

        string =@"block_String";            //语句1

    }];

    NSLog(@"string=%@",string);//语句2

输出的结果为 :string=normal_String

需求:代码执行顺序:语句2->语句1 现在想让顺序变为:语句1->语句2

修改后的代码

__block NSString * string = @"normal_String";

//创建一个全局队列

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

//创建一个信号量(值为0)

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

dispatch_async(queue, ^{

    [self myBlock:^{

        string = @"block_String";

//信号量加1

        dispatch_semaphore_signal(semaphore);

    }];

    //信号量减1,如果>0,则向下执行,否则等待

    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

    NSLog(@"string=%@",string); //语句2

});

输出的结果为:string=block_String

相关文章

  • 时间管理复盘:2019-05-31

    2019-05-31 周五 休息一日。

  • pre.clud.e|免除

    title: precluddate: 2019-05-31 10:12:22NO_sents: 592NO_re...

  • hasten 加速

    title: hastendate: 2019-05-31 10:32:53NO_sents: 112NO_ref...

  • conundrum 难题

    title: conundrumdate: 2019-05-31 10:16:41NO_sents: 54NO_r...

  • stunt 阻碍;矮化病

    title: stuntdate: 2019-05-31 10:55:19NO_sents: 199NO_refe...

  • 2019-06-01

    2019-05-31。 22:42 2019年5月31日 日精进。 体验。吸收 释放。 今日...

  • 四、onActivityResult

    2019-05-31 1.回调函数:启用其他Activity并返回结果 MainActivity中: Select...

  • 2019-5-31晨间日记

    2019-05-31 【践行人员】袁顺娟 【践行天数】212/1000 【今日天气】雨 【昨日早睡】23:00 【...

  • 咏河中石

    裂落出崇峦 磨身逆浪欢 千删浮脆去 润泽质尤完 2019-05-31

  • 五、intent

    2019-05-31 显式Intent的实现方式 隐式Intent的实现方式 Extras属性 系统内置Actio...

网友评论

      本文标题:2019-05-31

      本文链接:https://www.haomeiwen.com/subject/pptwtctx.html