美文网首页
GCD组(多任务执行)

GCD组(多任务执行)

作者: IOShzz | 来源:发表于2017-02-13 11:47 被阅读0次

使用场景

在实际开发中,需要开启N个异步线程,(如异步下载N张图片,下载结束后需要继续执行某项任务),需要依赖N个线程返回的数据,需要接收所有线程任务执行完成的通知。

/** 调度组-在一组异步代码执行完毕后,统一获得通知 */
- (void)group1 {
// 1. 创建调度组
dispatch_group_t group = dispatch_group_create();
// 2. 创建全局队列
dispatch_queue_t q = dispatch_get_global_queue(0, 0);
// 3. 将任务添加到队列和调度组
dispatch_group_async(group, q, ^{
  [NSThread sleepForTimeInterval:1.0]; //此处休眠1s便于观察线间关系
  NSLog(@"任务 1 %@", [NSThread currentThread]);
});
dispatch_group_async(group, q, ^{
  NSLog(@"任务 2 %@", [NSThread currentThread]);
});
dispatch_group_async(group, q, ^{
  NSLog(@"任务 3 %@", [NSThread currentThread]);
});
// 4. 监听所有任务完成
dispatch_group_notify(group, q, ^{
  NSLog(@"OVER %@", [NSThread currentThread]);
});
// 5. 判断异步 NSLog(@"come here");}

注:dispatch_group_notify这个函数是异步的,如果要换成同步用dispatch_group_wait(group, DISPATCH_TIME_FOREVER).群组不空,这句代码一直等,下面代码不执行

相关文章

  • GCD组(多任务执行)

    使用场景 在实际开发中,需要开启N个异步线程,(如异步下载N张图片,下载结束后需要继续执行某项任务),需要依赖N个...

  • 7.多线程基础(七)GCD加强

    1.GCD串行队列和并发队列 2.GCD延时执行 3.GCD线程组:(的作用) 4.GCD定时器: GCD的实现 ...

  • iOS编程之GCD

    在使用GCD之前先了解一下有哪些好处? GCD可以多任务并行执行;可以更多地利用CPU资源;会自动管理线程的生命周...

  • GCD 的其他方法

    GCD 的其他方法 1 .GCD 栅栏方法:dispatch_barrier_async 我们有时需要异步执行两组...

  • 聊聊 GCD

    什么是 GCD GCD (Grand Central Dispatch) 是 iOS 多任务的核心。在 Mac O...

  • 关于多线程笔记

    1.GCD线程延迟 2.GCD后台执行 3.GCD主线程执行 4.GCD一次性执行

  • 线程

    单核CPU如何执行多任务? 多核CPU如何执行多任务? 真正的并行执行多任务只能在多核CPU上实现,但是,由于任务...

  • 关于GCD多任务处理

    假如你说:像这样的GCD多任务应用的场景不太算多,我说:但这不是你没必要知道怎么去处理使用GCD处理多任务的事情的...

  • iOS多线程总结

    1.GCD特点:易用,易读,直观,灵活,高性能gcd其实没有线程的概念,其实gcd的多线程是由于多任务概念带来的效...

  • python实现多任务方式

    什么是多任务?就是操作系统可以同时运行多个任务 多任务的执行方式并发:交替执行,是假的多任务并行:同时执行,是真的...

网友评论

      本文标题:GCD组(多任务执行)

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