美文网首页iOS-Developer-OC
iOS 多线程顺序执行

iOS 多线程顺序执行

作者: 彩虹下的笑颜 | 来源:发表于2018-08-13 14:58 被阅读0次

    经常碰到这种情况,请求一些比较耗时的操作,需要用block,等block内部执行完,再开始根据block获取的数据,执行其他步骤,这时就需要用多线程的顺序执行。

    dispatch_group_t grp = dispatch_group_create();    //创建多线程组

        dispatch_group_async(grp, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            dispatch_semaphore_t semp = dispatch_semaphore_create(0); //创建信号量

            myBlock = ^{          //自己的block函数

                dispatch_semaphore_signal(semp);  //执行完通知标识

            }

            dispatch_semaphore_wait(semp, DISPATCH_TIME_FOREVER);// 在请求成功之前等待信号量(-1)

        });

        dispatch_group_notify(grp, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    function()//执行接下来的函数

        });

    相关文章

      网友评论

        本文标题:iOS 多线程顺序执行

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