Sobes.tech
Senior

O que pode ser usado para transmitir dados entre goroutines?

sobes.tech IA

Resposta da IA

Para transmitir dados entre goroutines em Go, normalmente usam-se canais (channels). Os canais fornecem sincronização segura e transmissão de dados, permitindo que as goroutines troquem valores sem bloqueios explícitos.

Exemplo de uso de um canal:

ch := make(chan int)

// Enviar dados numa goroutine
go func() {
    ch <- 42
}()

// Receber dados
value := <-ch
fmt.Println(value) // 42

Além dos canais, pode-se usar memória partilhada com sincronização através de mutex do pacote sync, mas os canais são considerados uma forma mais idiomática em Go.