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)并行任務異步執行