Dispatchqueue.main
运行在主线程上,global
运行在后台线程上,对吗?如果没有,那有什么区别?
您询问:
DispatchQueue.main
在主线程上运行,global
在后台线程上运行是正确的吗?
是的,main
队列是在主线程上运行调度任务的串行队列。
global
队列本身具有多个"后台线程"。每个全局队列(每个"服务质量"QoS对应一个(是一个并发队列,其调度的任务在后台线程之一上运行,后台线程是从具有适当QoS的工作线程池中提取的。
有关各种类型的调度队列之间差异的描述,请参阅遗留的并发编程指南。该文档使用了旧的Objective-C语法,但通用概念在Swift中同样适用。