Sobes.tech
Junior — Middle

Ce metode pot fi utilizate pentru a comuta execuția corutinelor în cadrul aceluiași fir?

sobes.tech AI

Răspuns de la AI

În Kotlin, corutinele pot fi comutate în interiorul aceluiași fir folosind diferiți dispatcher-i și funcții:

  • withContext(Dispatchers.Main) — comutare pe firul principal (UI).
  • withContext(Dispatchers.Default) — comutare pe un pool de fire pentru sarcini intensive CPU.
  • withContext(Dispatchers.IO) — comutare pe un pool de fire pentru operații de intrare/ieșire.

De asemenea, se poate folosi yield() pentru a transfera voluntar controlul către o altă corutină în cadrul aceluiași fir.

Exemplu de schimbare a contextului:

launch {
    // Lucru pe firul principal
    withContext(Dispatchers.IO) {
        // Executarea unei operații de intrare/ieșire
    }
    // Revenire pe firul principal
}