GCD之dispatch_group_t
2016-02-27 10:26
218 查看
不废话,直接上代码,从代码的执行效果看如何使用
可实现多任务并行执行,任务结束后再做其他处理
如果在dispatch_group_notify后面再加一个线程会发现dispatch_group_notify也会等待后面的线程全部执行后执行,其实就是要等待组内的线程全部执行结束,可与dispatch_barrier 的效果对比学习
dispatch_queue_t queue = dispatch_queue_create("com.test.queue", DISPATCH_QUEUE_CONCURRENT); dispatch_group_t group = dispatch_group_create(); dispatch_group_async(group, queue, ^{ for (NSInteger i = 0; i<100; i++) { NSLog(@"a=%ld",(long)i); usleep(100*1000); } }); dispatch_group_async(group, queue, ^{ for (NSInteger i = 0; i<100; i++) { NSLog(@"b=%ld",(long)i); usleep(100*1000); } }); dispatch_group_notify(group, queue, ^{ NSLog(@"上面两个线程结束了"); }); dispatch_group_async(group, queue, ^{ for (NSInteger i = 0; i<200; i++) { NSLog(@"e=%ld",(long)i); usleep(100*1000); } });
可实现多任务并行执行,任务结束后再做其他处理
如果在dispatch_group_notify后面再加一个线程会发现dispatch_group_notify也会等待后面的线程全部执行后执行,其实就是要等待组内的线程全部执行结束,可与dispatch_barrier 的效果对比学习
相关文章推荐
- Java JNI调用c语言的dll测试
- 今日BBC
- 自定义圆角跟圆形组件
- Linux看门狗脚本 1.4
- linux新增用户并设置密码以及删除用户
- linux新增用户并设置密码以及删除用户
- 设置沉浸式状态栏
- android创建SQlite数据库和表格详解
- [Locked] Binary Tree Vertical Order Traversal
- 分布式技术一周技术动态 2016.02.28
- BZOJ1565 植物大战僵尸
- apache AH00558 错误的解决
- 开机出现指令“Ox00000000”的内存,该内容不能为read解决方法
- 2016-2小笔记
- 视频播放器
- 微型投影仪:MSP430
- IP电话知识点与协议
- Java Sax解析xml
- 如何清除远程桌面连接的IP域名信息
- not in子查询的用法