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(@"三個請求完成後執行");
            });
相關文章
相關標籤/搜索