iOS 全局并發隊列管理工具:YYDispatchQueuePool

jopen 9年前發布 | 25K 次閱讀 iOS開發 移動開發 YYDispatchQueuePool

iOS 全局并發隊列管理工具。
(該項目是 YYKit 組件之一)

當用 concurrent queue 來執行大量 block 時,有時會遇到下面這種情況:

當某個 block 所在線程被鎖住時,concurrent queue 會創建大量線程以至于占用了過多資源而影響到主線程。這里可以用一個全局的 serial queue pool 來盡量控制全局線程數。

用法

// 從全局的 queue pool 中獲取一個 queue
dispatch_queue_t queue = YYDispatchQueueGetForQOS(NSQualityOfServiceUtility);

// 創建一個新的 serial queue pool
YYDispatchQueuePool *pool = [[YYDispatchQueuePool alloc] initWithName:@"file.read" queueCount:5 qos:NSQualityOfServiceBackground];
dispatch_queue_t queue = [pool queue];

安裝

Cocoapods

  1. 在 Podfile 中添加pod "YYDispatchQueuePool"。
  2. 執行pod install或pod update。
  3. 導入 <YYDispatchQueuePool/YYDispatchQueuePool.h>。

Carthage

  1. 在 Cartfile 中添加github "ibireme/YYDispatchQueuePool"。
  2. 執行carthage update --platform ios并將生成的 framework 添加到你的工程。
  3. 導入 <YYDispatchQueuePool/YYDispatchQueuePool.h>。

手動安裝

  1. 下載 YYDispatchQueuePool 文件夾內的所有內容。
  2. 將 YYDispatchQueuePool 內的源文件添加(拖放)到你的工程。
  3. 導入YYDispatchQueuePool.h。

文檔

你可以在 CocoaDocs 查看在線 API 文檔,也可以用 appledoc 本地生成文檔。

系統要求

該項目最低支持 iOS 6.0。

項目主頁:http://www.baiduhome.net/lib/view/home/1447308125585

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!