更多值得學習的GCD知識,能夠學習:html
Grand Central Dispatch (GCD) Reference程序員
一、GCD的基本概念
- 什麼是GCD
- 全稱是Grand Central Dispatch,可譯爲「牛逼的中樞調度器」
- 純C語言,提供了很是多強大的函數
- GCD的優點
- GCD是蘋果公司爲多核的並行運算提出的解決方案
- GCD會自動利用更多的CPU內核(好比雙核、四核)
- GCD會自動管理線程的生命週期(建立線程、調度任務、銷燬線程)
- 程序員只須要告訴GCD想要執行什麼任務,不須要編寫任何線程管理代碼
二、GCD的代碼演示
首先建議略記下下面的英文單詞,真的會有助於你代碼的認識,我我的發現像我英語單詞不認識幾個的,GCD代碼涉及到那麼多生僻的單詞,放在代碼裏去記憶,容易忘記,容易被旁邊的代碼的單詞幹擾。
這裏的代碼多練習幾遍,直到不看源碼就能敲出來
首先是「併發隊列」—>」異步函數"
關於「併發隊列」—>」異步函數」補充老師的代碼:
關於「串行隊列」—>」異步函數」
關於「(全局)併發隊列」—>」同步函數」
關於「串行隊列」—>」同步函數」
關於「主隊列」—>」異步函數」
關於「主隊列」—>」同步函數」
三、串行隊列介紹
異步函數:不須要等待當前代碼執行完畢,就能夠執行後面的代碼
同步函數:要等待當前代碼執行完畢,才能繼續往下執行
GCD線程不是想開多少就能成功開多少的,這個是由CPU性能決定的。當CPU特別好,就能給你成功開不少個線程。
加載網絡圖片使用GCD
四、GCD經常使用的函數,很強大哦,必須掌握
最經常使用,延遲執行
使用柵欄函數
GCD一次性代碼
快速敲出一次性代碼:
不能放在懶加載中的,緣由是
GCD快速迭代函數的使用
什麼是迭代:其實就是for循環
下面經過一個小案例來實現快速迭代
需求:讓一個文件夾下面的圖片所有移動另外一個文件夾下面
沒有使用快速迭代遍歷
使用快速迭代遍歷: