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