Sobes.tech
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, Mutex para 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.