亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GCD 使用中需要注意的細節以及容易混淆的知識點

發布時間:2020-07-19 22:54:01 來源:網絡 閱讀:394 作者:Jacksun2Coshine 欄目:開發技術


        全稱是Grand Central Dispatch,可譯為“牛逼的中樞調度器”,純C語言,提供了非常多強大的函數。GCD是蘋果公司為多核的并行運算提出的解決方案,GCD會自動利用更多的CPU內核(比如雙核、四核),GCD會自動管理線程的生命周期(創建線程、調度任務、銷毀線程),程序員只需要告訴GCD想要執行什么任務,不需要編寫任何線程管理代碼。

        

        有4個術語比較容易混淆:同步、異步、并發、串行:

        同步和異步決定了要不要開啟新的線程

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

        異步:在新的線程中執行任務,具備開啟新線程的能力

        并發和串行決定了任務的執行方式

        并發:多個任務并發(同時)執行

        串行:一個任務執行完畢后,再執行下一個任務


使用代碼測試同步異步的結果:

(1)用異步函數往并發隊列中添加任務  總結:同時開啟三個子線程

(2)用異步函數往串行隊列中添加任務  總結:會開啟線程,但是只開啟一個線程

(3)用同步函數往并發隊列中添加任務  總結:不會開啟新的線程,并發隊列失去了并發的功能

(4)用同步函數往串行隊列中添加任務  總結:不會開啟新的線程



說明:同步函數不具備開啟線程的能力,無論是什么隊列都不會開啟線程;異步函數具備開啟線程的能力,開啟幾條線程由隊列決定(串行隊列只會開啟一條新的線程,并發隊列會開啟多條線程)。

同步函數

(1)并發隊列:不會開線程

(2)串行隊列:不會開線程

異步函數

(1)并發隊列:能開啟N條線程

(2)串行隊列:開啟1條線程

補充:

凡是函數中,各種函數名中帶有create\copy\new\retain等字眼,都需要在不需要使用這個數據的時候進行release。

GCD的數據類型在ARC的環境下不需要再做release。

CF(core Foundation)的數據類型在ARC環境下還是需要做release。 

異步函數具備開線程的能力,但不一定會開線程






向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

修武县| 玛纳斯县| 兴山县| 渭源县| 工布江达县| 广宁县| 康平县| 屏东县| 中方县| 长丰县| 张家界市| 安乡县| 定远县| 南部县| 浠水县| 科尔| 方山县| 南城县| 云阳县| 翼城县| 永修县| 方正县| 运城市| 苍山县| 海伦市| 珲春市| 柘城县| 龙南县| 鸡西市| 文安县| 天柱县| 叶城县| 普定县| 鄂托克前旗| 彭泽县| 洪泽县| 尼玛县| 普格县| 应用必备| 桃源县| 巨鹿县|