Junior — Middle
Aký je rozdiel medzi Dispatchers.Default a Dispatchers.IO v kontexte Kotlin Coroutines?
sobes.tech AI
Odpoveď od AI
V Kotlin Coroutines sú Dispatchers.Default a Dispatchers.IO určené pre rôznych typov úloh:
-
Dispatchers.Default: používa sa pre CPU-intenzívne operácie, ako sú výpočty a spracovanie dát. Používa pool vlákien, ktorého veľkosť závisí od počtu dostupných jadier procesora.
-
Dispatchers.IO: optimalizované pre vstupno-výstupné operácie (čítanie/zapisovanie súborov, sieťové požiadavky, práca s databázami). Používa rozšírený pool vlákien, ktorý umožňuje spúšťanie viacerých vlákien ako je počet jadier CPU, aby nedochádzalo k blokovaniu korutín pri čakaní na IO.
Príklad:
// CPU-intenzívny úloha
withContext(Dispatchers.Default) {
// zložité výpočty
}
// IO-intenzívny úloha
withContext(Dispatchers.IO) {
// čítanie súboru alebo sieťová požiadavka
}