使用场景:网络下载图片,全部图片下载完成后 加载到界面
创建组队列,创建全局队列,回去住队列
将异步任务添加到全局并发队列,将全局并发队列添加到组队列,组队列使用notify进行监视,当组队列中的所有异步任务完成后执行notify里面的代码
func groupQueen(){
//创建队列组
let group = DispatchGroup()
//创建全局队列
let globelQueen = DispatchQueue.global(qos:DispatchQoS.QoSClass.default)
//创建主队列
let main = DispatchQueue.main
//异步执行任务1
globelQueen.async(group:group) {
sleep(5)
print("并行执行任务1")
}
//异步执行任务2
globelQueen.async() {
print("并行执行任务2")
}
//任务1、2执行完成之后,回到主线程
group.notify(qos: DispatchQoS.default, flags: DispatchWorkItemFlags.detached, queue: main) {
print("任务完成了")
}
}
网友评论