美文网首页
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