Junior — Middle
Que técnicas de processamento paralelo são implementadas na linguagem Go?
sobes.tech IA
Resposta da IA
No Go, implementam-se as seguintes técnicas de processamento de tarefas paralelas:
-
Goroutines — threads leves que são iniciadas com a palavra-chave
go. Permitem executar funções em paralelo. -
Canais — mecanismo de comunicação entre goroutines, permitindo transmitir dados e sincronizar a execução.
-
Selectores — construção para aguardar várias operações em canais, permitindo processar dados de múltiplas fontes.
-
Pacote sync — contém primitivas de sincronização, como
Mutex,WaitGroup,Once, que ajudam a gerir o acesso a recursos partilhados e a coordenar a finalização das goroutines.
Exemplo de início de uma goroutine e transmissão de dados através de um canal:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "pronto"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg) // saída: pronto
}