91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

唐河县| 甘谷县| 屏东市| 二连浩特市| 黄石市| 黑龙江省| 工布江达县| 芦山县| 奉新县| 芒康县| 定南县| 客服| 三门峡市| 民勤县| 南皮县| 大庆市| 竹山县| 许昌县| 芦溪县| 惠东县| 封开县| 富裕县| 绍兴县| 兴城市| 临洮县| 莲花县| 霸州市| 松滋市| 哈巴河县| 达州市| 肥城市| 平罗县| 藁城市| 修文县| 保亭| 成武县| 钟山县| 鸡西市| 瑞昌市| 恩施市| 丹巴县|