Skip to content

Commit f6f090e

Browse files
committed
【GCD 扫盲篇】介绍各种队列与barrier 栅栏方法搭配后的效果。
1 parent aff1d3d commit f6f090e

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

01_Parse的多线程处理思路/GCD扫盲篇.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ GCD有四个概念:串行队列、并行队列、同步、异步四者。
1414
异步 | 不会等待任务完成才返回,会立即返回。 | 异步是多线程的代名词,因为必定会开启新的线程,线程的申请是由异步负责,起到开分支的作用。 | --
1515
串行队列 | 任务依次执行 | 同一时间队列中只有一个任务在执行,每个任务只有在前一个任务执行完成后才能开始执行。| 你不知道在一个Block(任务)执行结束到下一个Block(任务)开始执行之间的这段时间时间是多长,![enter image description here](http://cdn4.raywenderlich.com/wp-content/uploads/2014/01/Serial-Queue-480x272.png)
1616
并行队列 | 任务并发执行 | 你唯一能保证的是,这些任务会按照被添加的顺序开始执行。但是任务可以以任何顺序完成 | 你不知道在执行下一个任务是从什么时候开始,或者说任意时刻有多个Block(任务)运行,这个完全是取决于GCD。![enter image description here](http://cdn3.raywenderlich.com/wp-content/uploads/2014/01/Concurrent-Queue-480x272.png)
17-
全局队列 | 隶属于并行队列 | 不要与 barrier 栅栏方法搭配使用, barrier 只有与自定义的并行队列一起使用,才能让 barrier 达到我们所期望的栅栏功能。与 global 一起使用,barrier 会失效
17+
全局队列 | 隶属于并行队列 | 不要与 barrier 栅栏方法搭配使用, barrier 只有与自定义的并行队列一起使用,才能让 barrier 达到我们所期望的栅栏功能。与 串行队列或者 global 队列 一起使用,barrier 的表现会和 dispatch_sync 方法一样
1818
主队列 | 隶属于串行队列 | 不能与 sync 同步方法搭配使用,会造成死循环
1919

2020

0 commit comments

Comments
 (0)