多線程基礎(六)GCD基礎

 

更多值得學習的GCD知識,能夠學習:html

Grand Central Dispatch (GCD) Reference程序員

GCDObjC

 

 

一、GCD的基本概念

 
 
  • 什麼是GCD
  • 全稱是Grand Central Dispatch,可譯爲「牛逼的中樞調度器」
  • C語言,提供了很是多強大的函數
  • GCD的優點
  • GCD是蘋果公司爲多核並行運算提出的解決方案
  • GCD會自動利用更多的CPU內核(好比雙核、四核)
  • GCD會自動管理線程的生命週期(建立線程、調度任務、銷燬線程)
  • 程序員只須要告訴GCD想要執行什麼任務,不須要編寫任何線程管理代碼
 
 
 
 
 
 
二、GCD的代碼演示

 
首先建議略記下下面的英文單詞,真的會有助於你代碼的認識,我我的發現像我英語單詞不認識幾個的,GCD代碼涉及到那麼多生僻的單詞,放在代碼裏去記憶,容易忘記,容易被旁邊的代碼的單詞幹擾。
這裏的代碼多練習幾遍,直到不看源碼就能敲出來
 
首先是「併發隊列」—>」異步函數"
 
關於「併發隊列」—>」異步函數」補充老師的代碼:
關於「串行隊列」—>」異步函數」
關於「(全局)併發隊列」—>」同步函數」
關於「串行隊列」—>」同步函數」
關於「主隊列」—>」異步函數」
關於「主隊列」—>」同步函數」
 
 
三、串行隊列介紹

 
 
 
異步函數:不須要等待當前代碼執行完畢,就能夠執行後面的代碼
同步函數:要等待當前代碼執行完畢,才能繼續往下執行
 
 
 
GCD線程不是想開多少就能成功開多少的,這個是由CPU性能決定的。當CPU特別好,就能給你成功開不少個線程。
 
 
加載網絡圖片使用GCD
 
 
四、GCD經常使用的函數,很強大哦,必須掌握

 
 
最經常使用,延遲執行
 
 
使用柵欄函數
 
 
GCD一次性代碼
快速敲出一次性代碼:
 
不能放在懶加載中的,緣由是
 
GCD快速迭代函數的使用
 
 
什麼是迭代:其實就是for循環
 
 
 
 
 
下面經過一個小案例來實現快速迭代
 
需求:讓一個文件夾下面的圖片所有移動另外一個文件夾下面
 
沒有使用快速迭代遍歷
 
使用快速迭代遍歷:
相關文章
相關標籤/搜索