Grand Central Dispatch (GCD) 是Apple开发的一个针对多核编程的新方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它在一个线程池模式下执行并行任务。首次在Mac OS X 10.6雪豹中推出,也可在IOS 4及以上版本使用。
GCD平时使用最多的场景是
dispatch_async(dispatch_get_global_queue(0,0),^{
});
如果在其中执行的代码是一个耗时的操作,例如网络请求,对应的线程就不会立即释放。如果代码没有对上述代码做限制,很可能会造成设备无法开启新的线程。通常最多可以开启70-80个线程。为了避免这种场景,基于GCD简单实现了一个LongDispatch,可以设置最大并发数,限制开启过多的线程。
通过cocoapods集成
pod 'LongDispatch'
集成
初始化LongDispatch实例
LongDispatch *dispatch = [LongDispatch new];
//添加任务
[dispatch addTask:^{
//do something
}];
//取消所有任务
[dispatch cancelAllTask];