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