Sobes.tech
Junior — Middle

Czym różnią się główny dispatcher i domyślny dispatcher podczas korzystania z korutyn w Kotlinie?

sobes.tech AI

Odpowiedź od AI

W Kotlinie dispatchery (dyspozytory) określają, na którym wątku lub puli wątków będzie wykonywana korutyna.

  • Main dispatcher — to dyspozytor, który uruchamia korutyny na głównym (UI) wątku. Używany do aktualizacji interfejsu i interakcji z elementami UI, gdzie wymagana jest realizacja na głównym wątku.

  • Default dispatcher — to domyślny dyspozytor, który korzysta z puli wątków zoptymalizowanej do wykonywania zadań intensywnych obliczeniowo. Nie blokuje głównego wątku i nadaje się do obliczeń w tle.

Przykład:

// Uruchomienie korutyny na głównym wątku
CoroutineScope(Dispatchers.Main).launch {
    // aktualizacja UI
}

// Uruchomienie korutyny do pracy w tle
CoroutineScope(Dispatchers.Default).launch {
    // ciężkie obliczenia
}

Podsumowując, Main dispatcher — dla wątku UI, Default — dla zadań CPU w tle.