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
}