GCD的一点理解
来源:互联网 发布:数据库实用教程 编辑:程序博客网 时间:2024/05/16 06:36
大家都知道GCD 有两种队列:一种是串行队列,一种是并发队列。什么是串行队列?串行队列就是队列中的代码块一个一个按顺序执行,每当上一个代码块执行结束后下一个代码块才会执行。打个比方,如果队列是一些首尾相连的火柴。那么串行队列里,这些火柴只有在前一根火柴燃烧殆尽之后自己才会燃烧。而并发队列则不是这样,并发队列也是一队火柴,但是这些火柴在工作时会被一根一根自前向后地点燃,不用等待前一根火柴燃尽。但是要注意的是,并发队列也是一个队列,尽管他可以使多个代码块同时执行,但是它也会有一个启动顺序,这个顺序也是一个自前向后的顺序。所以当每个代码块的时间花费足够小的话,并发队列的结果也就近似于串行队列了。
那么什么是dispatch_async和dispatch_sync呢。我将dispatch_async和dispatch_sync理解为一种入队时的一种动作。前者是在入队时不需要等待队列结果的,而后者需要等待队列的反馈结果。同样还是拿火柴打个比方,如果说还是把队列比作一队火柴,那么dispatch_async则是将需要入队的火柴一根一根直接放在队列里,它不要知道队列是否已经到了最后一个。而dispatch_sync,则是等队列燃烧尽了再向队列里放火柴。如果我手里有10根火柴,dispatch_async是将10根火柴直接放进队列里。而dispatch_sync则是在队列快熄灭的时候放进一根,其余9根还在我的手里。
0 0
- GCD的一点理解
- GCD的一点理解
- IOS-GCD的一点认识
- GCD的一点小补充
- 关于GCD中同步函数+主队列产生死锁的一点理解
- GCD 的简单理解
- GCD--我的理解
- GCD的理解
- GCD 的理解
- GCD的深入理解
- GCD的理解
- GCD死锁的理解
- 针对GCD的理解
- Ajax的一点理解
- Cygwin的一点理解
- UIWebView 的一点理解
- MEF的一点理解
- QThread的一点理解
- python第二次小练习
- linux下 部署免安装mysql
- 【剑指offer】约瑟夫环问题
- 九度OJ题目1015:还是A+B
- 基于DragonBoard 410c的远程家居监控平台四之远程图像传输(下)
- GCD的一点理解
- xRecycleview
- Android笔记之获取文件存储
- Range表分区
- Android Studio查找功能(搜索功能)及快捷键
- html,js炫彩时钟
- 奇葩版Flappy Bird,HTML5 Flappy游戏源码下载
- 【剑指offer】无聊的1+2+...+n
- leetcode146. LRU Cache