Sobes.tech
Junior — Middle

Milyen módszerekkel lehet váltani a korutinok végrehajtását egy szálon belül?

sobes.tech MI

Válasz az MI-től

Kotlinban a korutinokat ugyanazon a szálon belül különböző dispatcher-ek és funkciók segítségével lehet váltogatni:

  • withContext(Dispatchers.Main) — váltás a fő (UI) szálra.
  • withContext(Dispatchers.Default) — váltás egy szálmedencére CPU-intenzív feladatokhoz.
  • withContext(Dispatchers.IO) — váltás egy szálmedencére bemenet/kimenet műveletekhez.

Ezenkívül használható a yield() a kontroll önkéntes átadására egy másik korutin számára ugyanazon a szálon belül.

Példa a kontextus váltására:

launch {
    // Munka a fő szálon
    withContext(Dispatchers.IO) {
        // Bemenet/kimenet művelet végrehajtása
    }
    // Visszatérés a fő szálra
}