Junior — Middle
Какви начини за изпълнение на задачи в Coroutines познаваш?
sobes.tech AI
Отговор от AI
В Kotlin Coroutines задачите могат да бъдат изпълнявани по няколко начина:
-
launch — стартира нова coroutine, която се изпълнява паралелно и не връща резултат. Използва се за фонови задачи, където резултатът не е необходим.
-
async — стартира coroutine, която връща резултат под формата на Deferred, позволявайки да получите резултата чрез await(). Подходящо за паралелни изчисления с резултат.
-
runBlocking — блокира текущия поток, докато coroutine не приключи, и често се използва в main функции или тестове.
-
withContext — променя контекста на изпълнение (например към Dispatchers.IO за операции за вход/изход) и изпълнява блок от код, връщайки резултата.
Пример:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("Задача в launch")
}
val result = async {
delay(500)
42
}
println("Резултат от async: ${result.await()}")
}