ios多线程(一) gcd详解

乘着十一假期空闲在家,可以好好整理一下多线程编程的知识点。

GCD任务和队列

任务:就是执行操作的意思。

队列(Dispatch Queue):这里的队列指执行任务的等待队列,即用来存放任务的队列。

小结:

同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)换句话说,异步执行(async)虽然具有开启新线程的能力,但是并不一定开启新线程。这跟任务所指定的队列类型有关。

同步函数

(1)并发队列:不会开线程

(2)串行队列:不会开线程

异步函数

(1)并发队列:能开启N条线程

(2)串行队列:开启1条线程

GCD的使用步骤

GCD的其他方法

多线程适用场景

###

参考资料:

1.https://www.jianshu.com/p/4b1d77054b35
2.iOS 多线程:『GCD』详尽总结 写得根详细,特别是对几种组合的罗列
3.iOS多线程到底不安全在哪里?
4.iOS 开发多线程 —— GCD
5.iOS App 使用 GCD 导致的卡顿问题
6.多线程与网络