GCD的一些知识
来源:互联网 发布:aria2c mac 编辑:程序博客网 时间:2024/05/22 01:40
GCD
全称是Grand Central Dispath 被译牛逼的中枢调度器
它是用纯c语言编写的函数库,为苹果多核并行运行提供解决方案
优点:能够更多的使用多核心
自动管理线程的生命周期,创建线程,调度线程,销毁线程,
程序猿只需要告诉做什么任务就行了,不需要编写线程相关的代码
GCD中有两个用来执行任务的常用函数
同步:必须在当前线程中执行任务,不具备开启新线程的能力
异步:可以在新线程中执行任务,具备开启新线程的能力
sync
async
GCD 的队列可以分为2个类型
并发队列
可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)
并发功能在异步函数下才有效
同步函数 并发队列 不开启新线程 任务串行执行任务
异步函数 并发队列 开启新线程 同时任务执行
同步函数 串行队列 不开启新线程 任务串行执行
异步函数 串行队列 开启一条线程 任务串行执行
全局并发队列
异步函数 下 开启新线程 任务并发执行
同步函数下 不开启新线程 任务串行执行
主队列 是 特殊串行队列
同步函数:会发生死锁
异步函数:不会开启新的新线程,不会发生死锁,串行执行任务
GCD线程间的通信 就是回到主线程中刷新UI
快速迭代 dipath_apply
dispatch_apply(33,dispatch_get_global_queue(0,0), ^(size_t i) {
NSLog(@"%d---%@",i,[NSThreadcurrentThread]);
});
队列组
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{
NSLog(@"队列组1");
});
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{
NSLog(@"队列组2");
});
dispatch_group_notify(group,dispatch_get_global_queue(0,0), ^{
NSLog(@"队列组结束");
});
- GCD的一些知识
- GCD的相关知识
- GCD的一些东西
- GCD的一些用法
- GCD的一些原理
- GCD的一些功能
- gcd的一些性质
- GCD 知识
- GCD的一些小应用
- GCD的一些分析-1
- GCD的一些分析-2
- 关于GCD的一些用法
- 关于GCD的一些总结
- iOS GCD的一些小结
- 关于GCD的一些认识
- GCD的一些简单使用
- 关于GCD的一些函数
- GCD的一些应用知识点
- lnmp环境搭建之mysql篇
- Lombok介绍及使用方法 lombok简介
- 利用de Casteljau算法绘制Bezier曲面
- 链家、美团点评测试岗位笔试总结
- 工厂三兄弟之工厂方法模式(二)
- GCD的一些知识
- hibernate的悲观锁和乐观锁
- js防止安卓手机软键盘弹出挤压页面导致变形的方法
- 纯css制作tab选项卡(二)
- Zookeeper集群配置
- OpenCV
- java服务器使用swagger自动生成API文档
- Android px,dip,sp之间的转换
- 关于ionic制作webApp打包的过程