Sobes.tech
Junior — Middle

Que tipos de implementação de tarefas paralelas conhece?

sobes.tech IA

Resposta da IA

Em Go, tarefas paralelas podem ser implementadas de várias maneiras:

  • Goroutines — threads leves iniciados com a palavra-chave go. Permitem executar funções em paralelo.

  • Canais — usados para comunicação e sincronização entre goroutines, permitindo transferir dados de forma segura.

  • Pools de trabalhadores — um grupo de goroutines que pega tarefas de uma fila e as processa, ajudando a controlar o número de goroutines que trabalham simultaneamente.

  • sync.WaitGroup — para esperar que um grupo de goroutines termine.

Exemplo de iniciar uma goroutine e enviar dados através de um canal:

ch := make(chan int)
// Iniciar uma goroutine
go func() {
    ch <- 42 // enviar valor ao canal
}()
// Receber valor do canal
val := <-ch
fmt.Println(val)