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