Sobes.tech
Junior — Middle

Czy możesz wyjaśnić cel i użycie DispatchQueue.global w Swift?

sobes.tech AI

Odpowiedź od AI

DispatchQueue.global w Swift jest używany do wykonywania zadań w tle, nie blokując głównego (UI) wątku. Pozwala to na asynchroniczne wykonywanie operacji zasobożernych (np. ładowanie danych, przetwarzanie plików), zapewniając responsywność interfejsu.

DispatchQueue.global() zwraca globalną kolejkę z określonym poziomem priorytetu (QoS), na przykład:

  • .userInteractive — dla zadań wpływających na UI i wymagających natychmiastowej reakcji.
  • .userInitiated — dla zadań inicjowanych przez użytkownika, które muszą być wykonane szybko.
  • .utility — dla długotrwałych zadań w tle.
  • .background — dla zadań o niskim priorytecie.

Przykład użycia:

DispatchQueue.global(qos: .background).async {
    // Długa operacja, np. ładowanie danych
    let data = fetchDataFromNetwork()

    DispatchQueue.main.async {
        // Aktualizacja UI na głównym wątku
        self.updateUI(with: data)
    }
}

W ten sposób DispatchQueue.global pomaga efektywnie zarządzać wielowątkowością i utrzymać płynne działanie aplikacji.