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
}