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)