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