1. 程式人生 > >GCD使用 序列並行佇列 與 同步非同步執行的各種組合 及要點分析

GCD使用 序列並行佇列 與 同步非同步執行的各種組合 及要點分析

0、概要

1、非同步函式和並行佇列 注意:這些任務都是在建立完之後才執行的。非同步函式+併發佇列,可以新建執行緒,各執行緒也是併發執行的
2、同步函式+併發佇列 注意:這些任務都是建立一個就立馬執行,執行完才建立下一個,因為是同步函式,所以不新建執行緒,只要是同步函式,就不會新建執行緒。 併發佇列與否,並不影響同步函式的建立,因為本身就不能多建立執行緒,也就不存在併發。
3、非同步函式+序列佇列 注意:這個搭配可以新建執行緒,但是因為是序列佇列,所以實際上也只是開了一條新執行緒,做完一個,再做另一個。
4、同步函式+序列佇列 注意:這樣既不會開新執行緒,也是序列執行的。

5、在主佇列中,用非同步函式建立任務 注意:因為主佇列是序列佇列,所以和非同步函式+序列佇列的搭配是一樣的,而且是在主執行緒執行的。因為只要加到主佇列,就一定是載入主執行緒。不論是同步還是非同步。
6、在主佇列用同步函式建立任務,是會卡住的
7、還有一種dispatch巢狀也會卡死