如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张

2018-02-22  本文已影响19人  natewang

使用dispatch_group_t

dispatch_queue_t dispatchQueue = dispatch_queue_create("ted.queue.next1", DISPATCH_QUEUE_CONCURRENT);
    dispatch_queue_t globalQueue = dispatch_get_global_queue(0, 0);
    dispatch_group_t dispatchGroup = dispatch_group_create();
    dispatch_group_async(dispatchGroup, dispatchQueue, ^(){
        
        dispatch_async(globalQueue, ^{
           
            sleep(5);
            NSLog(@"任务一完成");
        });
    });
    dispatch_group_async(dispatchGroup, dispatchQueue, ^(){
        
        dispatch_async(globalQueue, ^{
            
            sleep(8);
            NSLog(@"任务二完成");
        });
    });
    dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(), ^(){
        NSLog(@"notify:任务都完成了");
    });

同步接口
dispatch_group_wait

上一篇 下一篇

猜你喜欢

热点阅读