Junior — Middle
Koje metode se mogu koristiti za prebacivanje izvršavanja korutina unutar jednog niti?
sobes.tech АИ
Одговор од АИ
U Kotlinu, korutine mogu biti prebačene unutar istog toka pomoću različitih dispatcher-a i funkcija:
- withContext(Dispatchers.Main) — prebacivanje na glavni (UI) tok.
- withContext(Dispatchers.Default) — prebacivanje na bazen niti za CPU-intenzivne zadatke.
- withContext(Dispatchers.IO) — prebacivanje na bazen niti za ulazno/izlazne operacije.
Takođe, može se koristiti yield() za dobrovoljno prebacivanje kontrole na drugu korutinu unutar trenutnog toka.
Primer prebacivanja konteksta:
launch {
// Rad u glavnom toku
withContext(Dispatchers.IO) {
// Izvršavanje ulazno/izlazne operacije
}
// Povratak u glavni tok
}