★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-nbwxcgvw-ku.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
目錄:[Swift]通天遁地Swiftgit
本文將演示線程組的使用。github
使用線程組能夠設置在完成一個或一組任務以後,再執行另外一個或一組任務。swift
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】微信
如今開始編寫代碼,實現線程組的功能。網絡
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 //在控制檯輸出一條語句,用來標識任務的開始 10 print("Start the task and display the Loading animation.") 11 12 //初始化一個調度組對象 13 let group = DispatchGroup() 14 //得到全局調度隊列 15 let globalQueue = DispatchQueue.global() 16 17 //經過全局調度隊列的異步方法,執行調度組對象 18 globalQueue.async(group: group, execute: {_ in 19 //在控制檯輸出一條語句,模擬一條具體的任務 20 print("Load a user picture from the remote server.") 21 }) 22 23 //經過全局調度隊列的異步方法,執行調度組對象 24 globalQueue.async(group: group, execute: {_ in 25 //在控制檯輸出一條語句,模擬一條具體的任務。 26 //並設置該任務和第一個任務,都位於同一個調度組中。 27 print("Get the annual record of all transactions by user id.") 28 }) 29 30 //調用調度組的通知方法,當調度組中的任務所有完成以後,執行其餘的任務。 31 group.notify(queue: globalQueue, execute: {_ in 32 print("Complete all tasks and hide the Loading animation.") 33 }) 34 35 //經過全局調度隊列的異步方法,執行調度組對象 36 globalQueue.async(group: group, execute: {_ in 37 //並設置該任務和前面的兩個任務,位於同一個調度組中, 38 //這樣當調度組中的三個任務所有執行完成以後,纔會執行調度組的通知方法 39 print("Get the collection of goods by user id.") 40 }) 41 } 42 43 override func didReceiveMemoryWarning() { 44 super.didReceiveMemoryWarning() 45 // Dispose of any resources that can be recreated. 46 } 47 }
當調度組中的任務所有執行完成以後,纔會執行調度組的通知方法。異步