GCD—调度组

来源:互联网 发布:为什么淘宝比京东便宜 编辑:程序博客网 时间:2024/06/06 18:56
  • 模拟下载图片 说明调度组的用法
  • 注意: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");}
0 0
原创粉丝点击