Junior — Middle
Jak se liší hlavní dispatcher a výchozí dispatcher při používání coroutin v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu určují dispatchery (dispečery), na kterém vlákně nebo vláknovém poolu bude coroutine spuštěna.
-
Main dispatcher — je dispečer, který spouští coroutines na hlavním (UI) vlákně. Používá se k aktualizaci rozhraní a interakci s prvky UI, kde je vyžadováno provádění na hlavním vlákně.
-
Default dispatcher — je výchozí dispečer, který využívá pool vláken optimalizovaný pro CPU-intenzivní úkoly. Neblokuje hlavní vlákno a je vhodný pro pozadí výpočty.
Příklad:
// Spuštění coroutine na hlavním vlákně
CoroutineScope(Dispatchers.Main).launch {
// aktualizace UI
}
// Spuštění coroutine pro pozadí
CoroutineScope(Dispatchers.Default).launch {
// náročné výpočty
}
Stručně řečeno, Main dispatcher — pro UI vlákno, Default — pro pozadí CPU-intenzivní úkoly.