Junior — Middle
Jakie metody wykonywania zadań w Coroutines znasz?
sobes.tech AI
Odpowiedź od AI
W Kotlin Coroutines zadania można wykonywać na kilka sposobów:
-
launch — uruchamia nową korutynę, która działa równolegle i nie zwraca wyniku. Używana do zadań w tle, gdzie wynik nie jest potrzebny.
-
async — uruchamia korutynę, która zwraca wynik w postaci Deferred, umożliwiając uzyskanie wyniku przez await(). Odpowiednia do równoległych obliczeń z wynikiem.
-
runBlocking — blokuje bieżący wątek do czasu zakończenia korutyny, często używana w funkcjach main lub testach.
-
withContext — zmienia kontekst wykonania (np. na Dispatchers.IO dla operacji wejścia/wyjścia) i wykonuje blok kodu, zwracając wynik.
Przykład:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("Zadanie w launch")
}
val result = async {
delay(500)
42
}
println("Wynik async: ${result.await()}")
}