Sobes.tech
Junior — Middle

Jakými metodami lze přepínat provádění korutin v rámci jednoho vlákna?

sobes.tech AI

Odpověď od AI

V Kotlinu lze korutiny přepínat uvnitř jednoho vlákna pomocí různých dispatcherů a funkcí:

  • withContext(Dispatchers.Main) — přepnutí na hlavní (UI) vlákno.
  • withContext(Dispatchers.Default) — přepnutí na skupinu vláken pro CPU-intenzivní úkoly.
  • withContext(Dispatchers.IO) — přepnutí na skupinu vláken pro operace vstupu/výstupu.

Kromě toho lze použít yield() k dobrovolnému předání řízení jiné korutině v rámci aktuálního vlákna.

Příklad přepínání kontextu:

launch {
    // Práce v hlavním vlákně
    withContext(Dispatchers.IO) {
        // Provádění operace vstupu/výstupu
    }
    // Návrat do hlavního vlákna
}