iOS多線程-GCD之創(chuàng)建和獲取隊列

一、創(chuàng)建隊列

//定義
dispatch_queue_create(const char *label, dispatch_queue_attr_t attire);
//示例
dispatch_queue_t mySerialQueue = dispatch_queue_create("com.gcd.queueCreate.mySerialQueue", NULL);
    
  1. 第一個參數(shù)是隊列名稱,采用域名反轉(zhuǎn)的命名規(guī)則,便于調(diào)試。

  2. 第二個參數(shù)用于區(qū)分創(chuàng)建串行隊列還是并行隊列。

    串行隊列: 傳入 NULLDISPATCH_QUEUE_SERIAL
    并行隊列: 傳入 DISPATCH_QUEUE_CONCURRENT

  3. 優(yōu)先級使用的是默認優(yōu)先級,即 DISPATCH_QUEUE_PRIORITY_DEFAULT

二、獲取隊列

除了通過 dispatch_queue_create 創(chuàng)建隊列,我們還可以直接獲取由系統(tǒng)標準提供的主隊列(Main Dispatch Queue)和全局隊列(Global Dispatch Queue),在多數(shù)時候我們都會去使用系統(tǒng)提供的隊列。

  1. 獲取主隊列(Main Dispatch Queue
dispatch_queue_t mainQueue = dispatch_get_main_queue();

主隊列是在主線程中執(zhí)行的隊列,主線程又常稱為UI線程,所有的UI操作都在這個線程中進行,主隊列是一個串行隊列。

  1. 獲取全局隊列(Global Dispatch Queue
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

第一個參數(shù)指明隊列執(zhí)行的優(yōu)先級

DISPATCH_QUEUE_PRIORITY_HIGH ----高優(yōu)先級
DISPATCH_QUEUE_PRIORITY_DEFAULT ---- 默認優(yōu)先級
DISPATCH_QUEUE_PRIORITY_LOW ----低優(yōu)先級
DISPATCH_QUEUE_PRIORITY_BACKGROUND ----后臺優(yōu)先級

第二個參數(shù)傳入0,留到以后使用

全局隊列是并行隊列,它們被所有的應(yīng)用程序共同使用,由XNU內(nèi)核進行管理。

GCD學習代碼 如果覺得有用,順便給顆星哦??

下一篇: iOS多線程-GCD之串行隊列和并行隊列

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容