ios 用信号量控制多个异步网络请求

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);//创建信号量
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);            //创建队列
dispatch_group_t group = dispatch_group_create();                         //创建线程组
dispatch_group_async(group, queue, ^{
               NSLog(@"第一个网络请求");
                dispatch_semaphore_signal(semaphore);
            });
dispatch_group_async(group, queue, ^{
               NSLog(@"第二个网络请求");
                dispatch_semaphore_signal(semaphore);
            });
dispatch_group_async(group, queue, ^{
               NSLog(@"第三个网络请求");
                dispatch_semaphore_signal(semaphore);
            });
dispatch_group_notify(group, queue, ^{
                 dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                 dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                 dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                 NSLog(@"三个请求完成后执行");
            });

 

posted @ 2018-05-18 15:21  YuFly  阅读(1212)  评论(0编辑  收藏  举报