美文网首页
dispatch_semaphore_t 流程控制

dispatch_semaphore_t 流程控制

作者: 一万次番茄炒蛋 | 来源:发表于2020-10-30 13:58 被阅读0次

最近业务需求需要用到信号量来控制block完成,再将结果放入数组中,然后进行for循环的下一个处理。

简单代码如下

dispatch_async(dispatch_get_global_queue(0,0), ^{

        dispatch_semaphore_t sema = dispatch_semaphore_create(0);

        for(NSIntegeri =0; i < count; i ++) {

            dispatch_async(dispatch_get_global_queue(0,0), ^{

                dispatch_semaphore_tsema2 =dispatch_semaphore_create(0);

                for(NSIntegerj =0; j < count; j ++) {

                    [Task dosomething:^(NSString *data) {

                        addobject

                        dispatch_semaphore_signal(sema2);

                    }];

                    dispatch_semaphore_wait(sema2,DISPATCH_TIME_FOREVER);

                }

                NSDictionary*info =@{

                };

                addObject

                dispatch_semaphore_signal(sema);

            });

            dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

        }

        todo2

    });

相关文章

网友评论

      本文标题:dispatch_semaphore_t 流程控制

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