Junior — Middle
Como implementar a troca de informações entre duas goroutines na linguagem Go?
sobes.tech IA
Resposta da IA
Em Go, a troca de informações entre duas goroutines é geralmente implementada usando canais (channels). Os canais permitem transmitir dados de forma segura entre goroutines e sincronizá-las.
Exemplo de troca através de um canal:
package main
import (
"fmt"
)
func sender(ch chan<- string) {
ch <- "Olá do sender"
}
func receiver(ch <-chan string) {
msg := <-ch
fmt.Println("Mensagem recebida:", msg)
}
func main() {
ch := make(chan string)
go sender(ch)
go receiver(ch)
// Esperar que as goroutines terminem
var input string
fmt.Scanln(&input)
}
Aqui, sender envia uma string para o canal, e receiver lê dela. Os canais garantem uma troca segura de dados sem a necessidade de usar mutexes ou outros mecanismos de sincronização.