Junior — Middle
Com que frequência utiliza canais para organizar a transmissão de dados entre goroutines?
sobes.tech IA
Resposta da IA
No Go, os canais (channels) são o mecanismo principal para a transferência segura de dados entre goroutines e para sincronizar o seu trabalho. A frequência de uso dos canais depende da arquitetura da aplicação e das tarefas.
Normalmente, os canais são utilizados:
- Quando é necessário transferir dados entre tarefas paralelas sem usar variáveis partilhadas.
- Para organizar filas de tarefas.
- Para sincronizar a conclusão das goroutines.
Exemplo de uso de um canal:
package main
import (
"fmt"
)
func worker(ch chan string) {
msg := <-ch
fmt.Println("Mensagem recebida:", msg)
}
func main() {
ch := make(chan string)
go worker(ch)
ch <- "Olá do main"
}
Assim, os canais são a forma padrão e recomendada de comunicação entre goroutines, devendo ser utilizados sempre que for necessário trocar dados ou sincronizar a execução.