GCD

什麼是GCD:大中央調度器

GCD優點:是蘋果專門爲多核的並行運算提供的解決方案,
自動利用CPU內核,自動管理線程生命週期,程序員只需要告訴GCD要執行的任務,不需要編寫任何線程管理代碼。

GCD的核心概念:
任務:要執行什麼操作;
隊列:用來存放任務(先進先出)

GCD中兩個用來執行任務的函數:
1,同步:dispath_sync  (在當前線程中執行)
2,   異步:  dispath_async   (新開一條線程執行)

GCD的隊列可以分爲兩類:
1,併發隊列:可以讓多個任務併發執行(自動開啓多個線程並同時執行任務)(只有在異步函數下才有效)
2,串行隊列:一個任務執行完畢後再執行下一個任務。

同步執行方法:


異步執行方法:



線程間通訊:如何在子線程中跳回主線程(必須在主線程刷新UI)


串行隊列,異步方法:


串行隊列,同步方法:



***********************延時執行*************************





****************************一次性執行****************************

有的時候,我們在開發中,有些代碼,從程序啓動之後,就只希望執行一次!
 
 尤其在單例設計模式中使用非常普遍,在iOS開發中,單例的使用,已經到了濫用程度!


*************************調度組***************************


****************死鎖*******************




1,如果主線程上有任務在執行,主隊列不會調度任務。
2,關於GCD Block嵌套,要儘量減少層次,最多不要超過三層。
3,層次越多越複雜,多線程開發的原則:簡單!
發佈了40 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章