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.