美文网首页iOS开发
iOS开发-如何用GCD同步若干个异步调用?

iOS开发-如何用GCD同步若干个异步调用?

作者: Pandakingli | 来源:发表于2017-11-12 16:11 被阅读15次

如何用GCD同步若干个异步调用?(比如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图展示给用户)

使用Dispatch Group追加block到Global Group Queue,这些block如果全部执行完毕,就会执行Main Dispatch Queue中的结束处理的block。
代码如下

-(void)test
{
    //获取并发队列
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    
    //获取组
    dispatch_group_t group = dispatch_group_create();
    
    dispatch_group_async(group, queue, ^{

        NSLog(@"线程:%@--加载图片1", [NSThread currentThread]);
        });
    
    dispatch_group_async(group, queue, ^{
        
      NSLog(@"线程:%@--加载图片2", [NSThread currentThread]);;
    });
    
    dispatch_group_async(group, queue, ^{
        
        NSLog(@"线程:%@--加载图片3", [NSThread currentThread]);
    });
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
      
      NSLog(@"线程:%@--合并图片", [NSThread currentThread]);
    });
    
}

相关文章

网友评论

    本文标题:iOS开发-如何用GCD同步若干个异步调用?

    本文链接:https://www.haomeiwen.com/subject/ecxomxtx.html