Junior — Middle
Kaip galima perjungti korutinų vykdymą vieno srauto ribose?
sobes.tech AI
Atsakymas iš AI
Kotlin'e korutinai gali būti perjungti viename sraute naudojant įvairius dispatcher'ius ir funkcijas:
- withContext(Dispatchers.Main) — perjungimas į pagrindinį (UI) srautą.
- withContext(Dispatchers.Default) — perjungimas į siūlų baseiną CPU intensyviems užduotims.
- withContext(Dispatchers.IO) — perjungimas į siūlų baseiną įvesties/išvesties operacijoms.
Be to, galima naudoti yield() savanoriškai perduoti valdymą kitai korutinai esant tame pačiame sraute.
Pavyzdys konteksto perjungimo:
launch {
// Darbas pagrindiniame sraute
withContext(Dispatchers.IO) {
// Vykdyti įvesties/išvesties operaciją
}
// Grįžti į pagrindinį srautą
}