分派队列简单笔记
dispatch_queue_t
dispatch_queue_t 是对底层线程的封装,相当于是线程的配置。用来管理 task。
实际可以被调度的队列只是四种优先级的全局队列。开发者使用 dispatch_queue_create() 自己创建的队列其实是依附在某种全局队列上面的。
全局队列是并发队列,开发者可以通过 dispatch_queue_create() 创建串行队列和并行队列。
-
串行队列: 按照 FIFO 原则,队列抛自己的 task , 但是一次只抛一个,当处理该 task 的线程空闲后,开始抛第二个 task。
-
并行队列: 按照 FIFO 原则,队列抛自己的 task , 但是当处理第一个线程还未空闲的时候,队列会调度另一条线程继续抛下一个 task。
-
依附: 队列 A 依附在目标队列 B 上,就是队列 A 排在队列 B 后面。当队列 B 中 task 全部抛出去后,队列 A 开始抛自己的 task。