GCD

2017-04-07  本文已影响11人  红茶绅士

什么是GCD

全称是Grand Central Dispatch.
纯C语言,提供了很多强大的函数.

GCD的优势

任务和队列

GCD中有2个核心概念

GCD的使用步骤

执行任务

GCD中有2个用来执行任务的常用函数

queue:队列
block:任务

同步和异步的区别

队列的类型

GCD的队列可以分为2大类型

同步 异步 并发 串行

队列的创建or获取方式

并发队列
dispatch_queue_create(const char * _Nullable label,   //队列名称
dispatch_queue_attr_t  _Nullable attr)  //队列类型
dispatch_get_global_queue(long identifier,   //队列的优先级
unsigned long flags)   此参数用0即可
串行队列

各种队列的执行效果

并发队列 手动创建的串行队列 主队列
同步(sync) 没有开启新线程
串行执行任务
没有开启新线程
串行执行任务
死锁
异步(async) 有开启新线程
并发执行任务
有开启新线程
串行执行任务
没有开启新线程
串行执行任务

注意:
使用sync函数往当前串行队列中添加任务,会卡住当前的串行队列

上一篇下一篇

猜你喜欢

热点阅读