Sobes.tech
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()}")
}