iOS - GCD

1、什么是GCD

全稱是,純C語言編寫,提供非常多強大的函數。是目前蘋果官網推薦的多線程開發方法,NSOperation便是基于GCD的封裝。

2、GCD的優勢所在

(1)為多核的并行運算提出了解決方法

(2)GCD會自動利用更多的CPU內核,比如雙核、四核

(3)GCD自動管理線程的生命周期(創建線程、調度任務、銷毀線程)

(4)程序員只需要告訴GCD想要執行什么任務,不需要編寫任何線程管理代碼。

3、GCD中有兩個核心概念

(1)任務:執行什么操作

(2)隊列:用來存放任務

4、隊列可以分為兩大類型

(1)串行隊列(Serial

Dispatch Queue):只能有一個線程,加入到隊列中的操作按添加順序依次執行,一個任務執行完畢才能執行另一個任務。

(2)并發隊列(Concurrent

Dispatch Queue):可以有多個線程,操作進來以后他會將這些線程安排在可用的處理器上,同時保證先進來的任務優先處理。

(3)還有一個特殊的隊列就是主隊列,主隊列中永遠只有一個線程-主線程用來執行主線程的操作任務

5、采用GCD做多線程,可以抽象為兩步:

(1)找到隊列

(2)在隊列中用同步或者異步的方法執行任務

6、執行隊列中任務的兩種方式

(1)同步:只能在當前線程執行任務,不具備開啟新線程的能力

(2)異步:可以在新的線程執行任務,具備開啟新線程的能力

7、GCD創建的線程任務有四種執行方式

(1)串行任務同步執行

(2)串行任務異步執行

(3)并行任務同步執行

(4)并行任務異步執行

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 從哪說起呢? 單純講多線程編程真的不知道從哪下嘴。。 不如我直接引用一個最簡單的問題,以這個作為切入點好了 在ma...
    Mr_Baymax閱讀 2,830評論 1 17
  • GCD筆記 總結一下多線程部分,最強大的無疑是GCD,那么先從這一塊部分講起. Dispatch Queue的種類...
    jins_1990閱讀 784評論 0 1
  • 為什么要用GCD 更好的利用多核、更好的利用并發 什么時候用到GCD 解決耗時、阻塞主隊列(主線程)、完成并發任務...
    不會游泳De魚閱讀 272評論 0 0
  • GCD采用了C語言語法,通過代碼塊回調的方式,通過對隊列的操作創建線程,功能比較強大。GCD里面的編程主要有四種搭...
    鴻雁長飛光不度閱讀 749評論 0 2
  • 我不懂愛情到底是什么,是放手給予自由,還是終其一生陪伴在其左右,亦或是默默的守候著,在其生活中扮演著一個角色,一個...
    Mce大魚閱讀 243評論 0 0