Sobes.tech
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
}