Junior — Middle
Come avviene l'interazione tra le coroutine all'interno di un singolo programma?
sobes.tech AI
Risposta dell'AI
In Android (e Kotlin), l'interazione tra coroutine avviene generalmente attraverso meccanismi di sincronizzazione e scambio di dati, come:
- Canali (Channels) — permettono di inviare e ricevere dati tra coroutine in modo asincrono.
- SharedFlow e StateFlow — flussi reattivi per la diffusione di eventi e stati.
- Contesto condiviso o oggetti con sincronizzazione — ad esempio,
Mutexper proteggere risorse condivise.
Esempio di utilizzo di un canale per scambiare messaggi tra coroutine:
val canale = Channel<String>()
// Mittente
launch {
canale.send("Ciao dalla coroutine")
}
// Destinatario
launch {
val messaggio = canale.receive()
println(messaggio)
}
In questo modo, le coroutine possono scambiare dati e coordinare il loro lavoro senza bloccare i thread.