iOS多线程-GCD
前言 Hi Coder,我是 CoderStar! 今天给大家带来多线程系列的第二篇文章 – GCD,其大概率是我们在使用多线程时最常用的方式了。 GCD 全称是 Grand Central Dispatch,翻译过来就是大规模中央调度。根据官方文档,它的作用是:通过向系统管理的调度队列中提交任务,在多核硬件上同时执行代码。它提供了一套机制,让你可以充分利用硬件的多核性能,并且让你不用再调用那些繁琐的底层线程 API,编写易于理解和修改的代码。 对开发者而言,面对的不再是上一篇文章 iOS多线程-Thread 所描述的线程,CGD 将线程概念模糊掉,开发者转而面对的是更上层的队列和任务,不再需要考虑线程的周期以及调度等等,这些交由 GCD 内部处理就好。 本文对一些概念性的东西可能会一笔带过,主要介绍日常开发的一些经验。同时更多细节大家可以看苹果开源出来关于 GCD 的源码 –swift-corelibs-libdispatch,同时我们通过源码也能了解到 GCD 的底层 API 都是用 C 写的。 队列 一般情况下我们可以将队列分为串行和并行两种,其中主队列是一种特殊的串行队列,全局队列是一组特殊的并行队列。 构造函数 下列为队列的构造函数 1 2 3 4 5 public convenience init(label: String, qos: DispatchQoS = .unspecified, attributes: DispatchQueue.Attributes = [], autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency = .inherit, target: DispatchQueue? = nil) 介绍一下各个参数的作用: ...