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
- 在 Podfile 中添加pod "YYDispatchQueuePool"。
- 执行pod install或pod update。
- 导入 <YYDispatchQueuePool/YYDispatchQueuePool.h>。
Carthage
- 在 Cartfile 中添加github "ibireme/YYDispatchQueuePool"。
- 执行carthage update --platform ios并将生成的 framework 添加到你的工程。
- 导入 <YYDispatchQueuePool/YYDispatchQueuePool.h>。
手动安装
- 下载 YYDispatchQueuePool 文件夹内的所有内容。
- 将 YYDispatchQueuePool 内的源文件添加(拖放)到你的工程。
- 导入YYDispatchQueuePool.h。
文档
你可以在 CocoaDocs 查看在线 API 文档,也可以用 appledoc 本地生成文档。
系统要求
该项目最低支持 iOS 6.0。