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(@"三個請求完成后執行");
            });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM