Sobes.tech
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.