dispatch_group_tgroup = dispatch_group_create();
dispatch_semaphore_tsemaphore = dispatch_semaphore_create(10);
dispatch_queue_tqueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
for(int i = 0; i < 100;i++ ) {
dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
dispatch_group_async(group,queue, ^{
dispatch_semaphore_signal(semaphore);
});
}
某个网络回调完之后才执行后面的操作
1.1. barrier
换成async时,都为1,2,3都执行完成,在执行完0号任务,在执行4,5,6
sync
async
区别:
sync需要等待0结束后,才会继续程序,然后插入4,5,6,然后执行后面的任务
async将自己的任务0插入queue之后,不会等待自己的任务结束,把后面的任务4,5,6插入到queue