iOS 全局并发队列管理工具:YYDispatchQueuePool

jopen 9年前

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.open-open.com/lib/view/home/1447308125585