Sobes.tech
Junior — Middle

Quais métodos de transmissão de dados são utilizados na interação entre goroutines em Go?

sobes.tech IA

Resposta da IA

Em Go, as principais formas de comunicação entre goroutines (threads leves) são:

  1. Canais (channels) — a forma principal e recomendada. Os canais permitem transmitir valores de forma segura entre goroutines, garantindo sincronização e troca de dados.
ch := make(chan int)
go func() {
    ch <- 42 // envio de valor pelo canal
}()
value := <-ch // recepção de valor do canal
  1. Variáveis partilhadas com sincronização — uso de dados partilhados com mutexes (sync.Mutex) ou outras primitivas de sincronização para evitar condições de corrida.

  2. Pacote sync — fornece várias ferramentas para coordenar goroutines, como WaitGroup, Cond.

No entanto, em Go, é comum evitar o acesso compartilhado à memória e preferir transmitir dados através de canais, o que simplifica o desenvolvimento e aumenta a segurança.