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(@"三个请求完成后执行");
            });

猜你喜欢

转载自www.cnblogs.com/YuFly-lyx/p/9056378.html