使用場景:網絡下載圖片,全部圖片下載完成后 加載到界面
創建組隊列,創建全局隊列,回去住隊列
將異步任務添加到全局并發隊列,將全局并發隊列添加到組隊列,組隊列使用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("任務完成了")
}
}