iOS 全局并发队列管理工具
YYDispatchQueuePool
iOS 全局并发队列管理工具。
当某个 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
。
系统要求
该项目最低支持 iOS 6.0
和 Xcode 8.0
。
常见问题及demo下载:https://github.com/ibireme/YYDispatchQueuePool