GCD有兩個十分重要的概念
1.隊列:
>1.串行隊列
一、系統主隊列
二、自己穿件的串行隊列
>2.并行隊列
一、系統全局隊列
二、自己創建的并行隊列:
2.任務:
>1.同步任務
>2.異步任務:
任務和隊列之間的關系
1.隊列中需要存放任務
2.任務需要在隊列中執行
同步任務可以放到串行隊列 也可以放在并行隊列 但是任務是在主線程執行還是在子線程執行任務的方式是同步的還是異步的取決于任務自身以及所在隊列
異步任務可以放到串行隊列 也可以放在并行隊列 但是任務是在主線程執行還是在子線程執行任務的方式是同步的還是異步的取決于任務自身以及所在隊列
1自己創建的串行隊列中
在自己創建的串行隊列中 同步任務在主線程中是同步執行的 而異步方法是在子線程中同步執行的
2系統的主線程中
在系統的主線程中 不可以創建主線程的同步方法會造成界面真死,而創建異步任務的話 任務是在主線程中完成的 是同步執行的
3自行創建的并行隊列中
在自己創建的并行隊列中 創建的同步任務 任務是在主線程中完成的 而且是同步完成 而創建異步任務 任務是在子線程中完成的 并且是異步完成
4獲取全局隊列
在全局隊列中 創建同步任務 任務是在主線程中完成的 而且是同步完成 而異步任務呢 任務是在子線程中完成 還是異步完成 一個任務的開始不用等待另外一個任務的完成
還有一種是是線程鎖?
這里可以用來創建單例 想必 單例已經不用我來說了吧
具體創建方法如下
這里的dispatch_once是一個API會有提示的
還有一個就是限時執行的線程方法如下
恩 好吧就這么多