Sobes.tech
Junior — Middle

Jak wygląda interakcja między korutynami w ramach jednego programu?

sobes.tech AI

Odpowiedź od AI

W Android (i Kotlin) interakcja między korutynami zazwyczaj odbywa się za pomocą mechanizmów synchronizacji i wymiany danych, takich jak:

  • Kanały (Channels) — umożliwiają asynchroniczne wysyłanie i odbieranie danych między korutynami.
  • SharedFlow i StateFlow — reaktywne strumienie do rozpowszechniania zdarzeń i stanów.
  • Wspólny kontekst lub obiekty z synchronizacją — na przykład Mutex do ochrony wspólnych zasobów.

Przykład użycia kanału do wymiany wiadomości między korutynami:

val kanał = Channel<String>()

// Nadawca
launch {
    kanał.send("Cześć od korutyny")
}

// Odbiorca
launch {
    val wiadomość = kanał.receive()
    println(wiadomość)
}

W ten sposób korutyny mogą wymieniać dane i koordynować pracę bez blokowania wątków.