Junior — Middle
Akými spôsobmi je možné prepínať vykonávanie korutín v rámci jedného vlákna?
sobes.tech AI
Odpoveď od AI
V Kotlinu je možné prepínať korutiny v rámci toho istého vlákna pomocou rôznych dispatcherov a funkcií:
- withContext(Dispatchers.Main) — prepnutie na hlavný (UI) vlákno.
- withContext(Dispatchers.Default) — prepnutie na skupinu vlákien pre CPU-intenzívne úlohy.
- withContext(Dispatchers.IO) — prepnutie na skupinu vlákien pre operácie vstupu/výstupu.
Okrem toho je možné použiť yield() na dobrovoľné odovzdanie kontroly inej korutine v rámci aktuálneho vlákna.
Príklad prepínania kontextu:
launch {
// Práca v hlavnom vlákne
withContext(Dispatchers.IO) {
// Vykonanie operácie vstupu/výstupu
}
// Návrat do hlavného vlákna
}