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
Mutexdo 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.