e.g.:一开始先执行任务一、任务二,当任务一或任务二其中一个执行完毕,再执行任务三,任务三完毕再执行任务四...。(只是觉得可以,还没有试过)
dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
dispatch_queue_t quene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//任务1
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self loadDetailData]; //请求A
dispatch_semaphore_signal(semaphore);
});
//任务2
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self loadHotCommentData]; //请求B
dispatch_semaphore_signal(semaphore);
});
//任务3
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self loadHotCommentData]; //请求C
dispatch_semaphore_signal(semaphore);
});
//任务4
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self loadHotCommentData]; //请求D
dispatch_semaphore_signal(semaphore);
});










网友评论