一、GCD串行/并行队列创建
串行队列:
![](https://img.haomeiwen.com/i11544062/d3dc9b7e576ef798.png)
并行队列:
![](https://img.haomeiwen.com/i11544062/40e2ec0ae00ead42.png)
二、GCD串行/并行队列同步/异步执行
![](https://img.haomeiwen.com/i11544062/39d78a449c43df60.png)
执行内容1:
![](https://img.haomeiwen.com/i11544062/9a34a56637015aa6.png)
执行结果1:
![](https://img.haomeiwen.com/i11544062/e3d1200d4b91ed52.png)
执行内容2:
![](https://img.haomeiwen.com/i11544062/5b5c9a2e8e4a0a88.png)
执行结果2:
![](https://img.haomeiwen.com/i11544062/d8664c2c04e08167.png)
执行内容3:
![](https://img.haomeiwen.com/i11544062/8589df0fa0851b87.png)
执行结果3:
![](https://img.haomeiwen.com/i11544062/fa072d9d9eacac1d.png)
执行内容4:
![](https://img.haomeiwen.com/i11544062/1d1a71e1bf2438b8.png)
执行结果4:
![](https://img.haomeiwen.com/i11544062/e79fd080d6301822.png)
三、总结:
由上面代码示例可以看出,串行队列就是在一个线程执行的队列:如果是当前线程,那就是串行同步队列(因为同步机制会阻塞当前线程),如果是新开辟的子线程,就是串行异步队列;并发队列如果是在当前线程中执行,就是并发同步队列,在新开辟的多个子线程中执行就是并发异步队列。
综上所述,我们平时使用最多的自然是并发异步队列,比如开辟多个子线程下载图片、文件等。另外由于串行队列中添加的任务会按加入的顺序执行,所以可以用来解决开发中关于资源抢夺的问题。
网友评论