Sobes.tech
Junior — Middle

Como é que a interação entre goroutines em Go é realizada?

sobes.tech IA

Resposta da IA

No Go, a interação entre goroutines é realizada através de canais (channels). Os canais permitem transmitir dados de forma segura entre goroutines e sincronizá-las.

Pontos principais:

  • O canal é criado com make(chan Tipo).
  • Enviar para o canal: ch <- valor.
  • Receber do canal: valor := <-ch.
  • Os canais podem ser com buffer ou sem buffer.

Exemplo:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "olá da goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Assim, os canais proporcionam uma interação segura e conveniente entre goroutines paralelas sem a necessidade de usar mutexes ou outros mecanismos de bloqueio.