dispatch_group_async(group,dispatch_get_global_queue(0,0), ^{
//线程一
dispatch_semaphore_t semaphore =dispatch_semaphore_create(0);
//网络操作....
dispatch_semaphore_signal(semaphore); //发出信号
//在网络请求任务成功之前,信号量等待中
dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
});
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{
//线程二
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
//网络操作....
dispatch_semaphore_signal(semaphore); //发出信号
//在网络请求任务成功之前,信号量等待中
dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
});
dispatch_group_notify(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
//汇总
dispatch_async(dispatch_get_main_queue(), ^{
});
});
本文展示如何使用Dispatch Group和Semaphore来同步多个异步网络请求,并确保所有请求完成后再进行后续操作。通过创建信号量并在每个请求完成后发送信号,主线程能够等待所有请求完成。
1549

被折叠的 条评论
为什么被折叠?



