91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

iOS開發多線程說明

大小:0.2 MB 人氣: 2017-09-25 需要積分:2

GCD中有2個核心概念

(1)任務:執行什么操作

(2)隊列:用來存放任務

GCD的使用就2個步驟

(1)定制任務

(2)確定想做的事情

將任務添加到隊列中,GCD會自動將隊列中的任務取出,放到對應的線程中執行

提示:任務的取出遵循隊列的FIFO原則:先進先出,后進后出

二。 執行任務

1. GCD中有2個用來執行任務的函數

說明:把右邊的參數(任務)提交給左邊的參數(隊列)進行執行。

(1)用同步的方式執行任務 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);

參數說明:

queue:隊列

block:任務

(2)用異步的方式執行任務 dispatch_async(dispatch_queue_t queue, dispatch_block_t block);

2. 同步和異步的區別

同步:在當前線程中執行

異步:在另一條線程中執行

三。 隊列

1. 隊列的類型

GCD的隊列可以分為2大類型

(1)并發隊列(Concurrent Dispatch Queue)

可以讓多個任務并發(同時)執行(自動開啟多個線程同時執行任務)并發功能只有在異步(dispatch_async)函數下才有效

(2)串行隊列(Serial Dispatch Queue)

讓任務一個接著一個地執行(一個任務執行完畢后,再執行下一個任務)

2. 補充說明

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

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

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

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

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

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

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

3. 串行隊列

GCD中獲得串行有2種途徑

(1)使用dispatch_queue_create函數創建串行隊列

dispatch_queue_t dispatch_queue_create(const char *label, dispatch_queue_attr_t attr); // 隊列名稱, 隊列屬性,一般用NULL即可

示例:

dispatch_queue_t queue = dispatch_queue_create(“wendingding”, NULL); // 創建

dispatch_release(queue); // 非ARC需要釋放手動創建的隊列

(2)使用主隊列(跟主線程相關聯的隊列)

主隊列是GCD自帶的一種特殊的串行隊列,放在主隊列中的任務,都會放到主線程中執行

使用dispatch_get_main_queue()獲得主隊列

示例:

dispatch_queue_t queue = dispatch_get_main_queue();

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 伊人天天操 | 奇米影视9999 | 国产精品福利在线观看免费不卡 | 35pao免费视频 | 最新免费jlzzjlzz在线播放 | 黄色网在线 | 五月激情六月丁香 | 免费永久欧美性色xo影院 | 国产精品9999久久久久仙踪林 | 黄色小毛片 | 色站在线 | av手机在线播放 | 在线观看一级毛片 | 99久久国产免费 - 99久久国产免费 | 在线免费成人 | 啪啪免费网 | 日本不卡一 | 亚洲高清日韩精品第一区 | 日本一区二区不卡在线 | 成人美女隐私免费 | 国产婷婷综合在线精品尤物 | 国产亚洲精品自在久久77 | 日本片巨大的乳456线观看 | fc2 ppv sss级素人美女 | 日本在线视频精品 | 播放个毛片看看 | 2020年亚洲天天爽天天噜 | 波多野结衣在线一区 | 国产亚洲精品aa在线观看 | 亚洲一区二区免费在线观看 | 国产理论片在线观看 | 午夜影视体验区 | 91三级在线观看 | 免费在线播放毛片 | 在线小视频你懂的 | 色综合久久天天综合绕观看 | 国产婷婷色一区二区三区深爱网 | 一女被多男玩很肉很黄文 | 国产色在线 | 亚洲 国产色综合天天综合网 | 丁香视频在线 | 国产在线啪 |