Junior — Middle
80
Можешь перечислить различные виды корутин и объяснить их особенности?
Companies where asked
IBS
Answer from AI
sobes.tech AI
В Kotlin для Android существуют разные виды корутин, которые отличаются по контексту и способу запуска:
- GlobalScope — корутины, живущие столько же, сколько приложение. Использовать осторожно, чтобы избежать утечек памяти.
- CoroutineScope — область видимости для корутин, обычно связанная с жизненным циклом компонента (например, Activity или ViewModel).
- launch — запускает корутину, не блокируя текущий поток, возвращает Job.
- async — запускает корутину и возвращает Deferred, который можно использовать для получения результата с помощью await.
Особенности:
- Корутины позволяют писать асинхронный код последовательно.
- Они могут быть отменены, что важно для управления ресурсами.
- Используют диспетчеры (Dispatchers) для выбора потока выполнения (Main, IO, Default).
Пример:
CoroutineScope(Dispatchers.Main).launch {
val data = withContext(Dispatchers.IO) {
// Долгая операция, например, запрос к сети
fetchData()
}
updateUI(data)
}