Go · Essencial · Inglês · Técnico
goroutine
Função executada de forma concorrente, gerenciada pelo runtime do Go e bem mais leve que uma thread do sistema; é iniciada com a palavra-chave go.
Onde usar
Aparece em todo servidor Go: cada requisição pode virar uma goroutine. Em code review, pergunte sempre quem encerra a goroutine, senão ela vira vazamento.
Em código
go func() {
fmt.Println("em paralelo")
}()
time.Sleep(time.Second) // evita sair antesExemplos
We spawn one goroutine per incoming connection.
Criamos uma goroutine para cada conexão recebida.
Main returned before the goroutine could print anything.
A main retornou antes de a goroutine imprimir qualquer coisa.
Cuidado
Não é uma thread do sistema operacional: o runtime multiplexa milhares de goroutines em poucas threads.
Sinônimos
thread leve
Origem
De go, 'ir', com routine, em referência a coroutine (corrotina).