GCD—调度组

原创 2015年11月21日 00:55:42
  • 模拟下载图片 说明调度组的用法
  • 注意:dispatch_group_enter & dispatch_group_leave 必须成对出现
- (void)gcdDemo1{
    // 队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

    // 创建组对象
    dispatch_group_t group =  dispatch_group_create();

    // 进入组 -- 后续往队列中添加的任务就受组管理
    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        NSLog(@"下载图片1 == %@",[NSThread currentThread]);
        // 在block内部最后一句代码,要离开组
        // 提示:进入组和离开组的代码必须成对出现
        dispatch_group_leave(group);
    });


    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        NSLog(@"下载图片2 == %@",[NSThread currentThread]);
        // 在block内部最后一句代码,要离开组
        dispatch_group_leave(group);
    });

    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        NSLog(@"下载图片3 == %@",[NSThread currentThread]);
        [NSThread sleepForTimeInterval:3.0];
        dispatch_group_leave(group);
    });

    // 通知主线程更新UI
//    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
//        NSLog(@"更新UI");
//    });
    // 一直等待组空,如果不空,永远在等待...
    // 同步函数
    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
    NSLog(@"更新UI");

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

IOS:dispatch_group_enter的学习

dispatch_group的作用:创建一个任务组,然后异步执行加入group的每个任务。比如如果用group管理3个任务的执行,那么这3个任务的执行顺序会同时执行。 dispatch_enter的作...
  • u011103194
  • u011103194
  • 2015年12月10日 14:24
  • 4401

完整详解GCD系列(三)dispatch_group

完整详解GCD系列三,详细的阐述了dispatch_group的常用方法,通过实例解析如何使用。并且实例解析了dispatch_group_enter/dispatch_group_leave。提供了...
  • Hello_Hwc
  • Hello_Hwc
  • 2014年11月23日 11:23
  • 6872

ios多线程操作(八)—— GCD调度组

有这么一个需要,分别执行2个耗时的异步操作,等2个异步操作都执行完毕后在回到主线程执行操作。如果想要快速高效地实现这个需求,可以考虑使用调度组。 调度组的创建代码如下: dispatch_grou...
  • u011058732
  • u011058732
  • 2015年03月22日 19:22
  • 2085

iOS开发笔记>> GCD调度组的使用

特点: 调度组中的所有异步任务执行结束后, 会得到统一的通知 使用场景: 监听一组异步任务是否执行结束, 如果执行结束就能得到统一的通知 常规用法:  - (void)gcdDemo1 ...
  • qq_34873211
  • qq_34873211
  • 2016年08月05日 17:30
  • 648

ios-调度组的使用

废话不说,直接上代码 //调度组的基本使用,模拟异步下载歌曲 -(void)test3 { //创建组 dispatch_group_t group=dispatch_group_cr...
  • ZCMUCZX
  • ZCMUCZX
  • 2017年08月10日 16:35
  • 171

iOS Concurrency-队列、DispatchGroup

本文内容来自Grand Central DispatchiOS Concurrency-队列、DispatchGroupSwift 3在Swift3中,GCD有关的API发生了一些变化,可参考: GC...
  • u014084081
  • u014084081
  • 2016年10月10日 14:48
  • 605

##队列组的概念及使用场景

队列组:dispatch_group_async此函数做了三件事 1.封装任务 2.将任务添加到队列中 3。监听队列任务的执行情况 通知group组队列的创建 dispatch_group_...
  • mrtrick
  • mrtrick
  • 2016年12月04日 18:13
  • 108

GCD调度组的使用

在一些社交应用比如微博配图时张数不确定, 如何动态调整图片的尺寸? GCD调度组可以解决我们的难题.下面代码统一监听A/B任务完成, 才执行更新UI- (void)group1 { dispat...
  • EJ_Paradise
  • EJ_Paradise
  • 2015年12月22日 12:15
  • 410

swift详解之十七-----------GCD的一些高级用法

GCD的一些高级用法注:本小节总结几个GCD的高级用法1、Dispatch Groups(调度组)Dispatch Group 会在整个组的任务都完成时通知你,这些任务可以是同步的,也可以是异步的,即...
  • u010586842
  • u010586842
  • 2015年08月30日 11:51
  • 1899

GCD—调度组

模拟下载图片 说明调度组的用法 注意:dispatch_group_enter & dispatch_group_leave 必须成对出现 - (void)gcdDemo1{ // 队列 ...
  • yi_zz32
  • yi_zz32
  • 2015年11月21日 00:55
  • 1713
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GCD—调度组
举报原因:
原因补充:

(最多只允许输入30个字)