Junior — Middle
Como é que a gestão de múltiplos threads é feita na linguagem Go?
sobes.tech IA
Resposta da IA
Na linguagem Go, a gestão de múltiplos threads de execução é feita através de goroutines. Uma goroutine é um thread leve que é iniciado com a palavra-chave go antes de chamar uma função. O scheduler do Go dentro do runtime gere a execução das goroutines, distribuindo-as pelos threads do sistema.
Para sincronizar e trocar dados entre goroutines, frequentemente usam-se canais (channels), que garantem uma transferência segura de dados e evitam condições de corrida.
Exemplo de lançamento de duas goroutines:
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 3; i++ {
fmt.Println(s)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go say("world") // inicia uma goroutine
say("hello") // é executada no thread principal
}
Neste exemplo, a função say é chamada numa goroutine separada, permitindo executar duas tarefas em paralelo.