Junior — Middle
Como é que a interação entre as corutinas é realizada dentro de um mesmo programa?
sobes.tech IA
Resposta da IA
No Android (e Kotlin), a interação entre corutinas geralmente é realizada através de mecanismos de sincronização e troca de dados, tais como:
- Canais (Channels) — permitem enviar e receber dados entre corutinas de forma assíncrona.
- SharedFlow e StateFlow — fluxos reativos para a disseminação de eventos e estados.
- Contexto comum ou objetos com sincronização — por exemplo,
Mutexpara proteger recursos compartilhados.
Exemplo de uso de um canal para troca de mensagens entre corutinas:
val canal = Channel<String>()
// Emissor
launch {
canal.send("Olá da corutina")
}
// Receptor
launch {
val mensagem = canal.receive()
println(mensagem)
}
Dessa forma, as corutinas podem trocar dados e coordenar o trabalho sem bloquear threads.