如何在 Swift 中使用後臺執行緒?


在本文中,您將學習如何在 Swift 語言中使用後臺執行緒執行任務。

Swift 為我們提供了多種執行後臺任務的方法。其中一個流行的選擇是 GCD(通常稱為 Grand Central Dispatch),它是一個用於在 Swift 語言中管理併發性的低階 API。

GCD 為我們提供了一個全域性佇列來建立後臺執行緒。您可以呼叫 DispatchQueue.global() 方法來獲取全域性排程佇列的例項。使用相同的例項,您可以使用 async() 方法在該佇列上非同步執行程式碼塊。

語法

以下是如何使用 GCD 建立後臺執行緒的語法:

DispatchQueue.global().async {
   // This block of code will be executed in the background
   // Perform some tasks here
}

這是使用 DispatchQueue 執行非同步任務的基本語法。

DispatchQueue 使我們能夠為操作分配優先順序。為此,您可以使用全域性佇列的服務質量 (QoS) 類,它確定任務的優先順序。

GCD 提供以下 QoS 類:

  • .userInteractive - 此類中的任務適用於需要立即完成以提供響應式使用者介面的任務。這些任務在主執行緒上以最高優先順序執行。

  • .userInitiated - 此類中的任務適用於使用者發起的任務,並且需要高效能。這些任務在高優先順序執行緒上執行,其優先順序高於 .default 類中的任務。

  • .default - 此類中的任務適用於非時間關鍵型任務,並且不需要高效能。這些任務在低優先順序執行緒上執行,其優先順序低於 .userInitiated 類中的任務。

  • .utility - 此類中的任務適用於可能需要很長時間才能完成並且不需要高效能的任務。這些任務在低優先順序執行緒上執行,其優先順序低於 .default 類中的任務。

  • .background - 後臺任務具有所有任務中最低的優先順序。將此類分配給您用於在應用程式在後臺執行時執行工作的任務或排程佇列。

如何使用後臺執行緒執行任務?

DispatchQueue.global(qos: .background).async {
   // write code to perform a task in the background
}

當您使用後臺執行緒時,請記住它們具有所有執行緒中最低的優先順序。因此,請仔細執行您的任務。

結論

這是 iOS 應用程式中最重要的內容,因為很多時候您需要在後臺執行緒中執行一些任務。例如,您必須在後臺執行緒中獲取使用者的當前位置,這將是一個不錯的選擇。

更新於: 2023年1月3日

7K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.