Sobes.tech
Junior — Middle

Quais são as características distintivas do uso de canais com buffer na programação?

sobes.tech IA

Resposta da IA

Os canais com buffer em Go têm as seguintes características distintivas:

  • Permitem enviar vários valores para o canal sem receber imediatamente, até que o buffer esteja cheio.
  • O remetente bloqueia-se apenas quando o buffer está cheio, e o receptor quando o buffer está vazio.
  • Melhoram o desempenho e permitem uma sincronização mais flexível das goroutines.
  • São usados para implementar filas e buffers entre produtor e consumidor.

Exemplo:

ch := make(chan int, 3) // buffer de 3 elementos
ch <- 1
ch <- 2
ch <- 3
// O remetente não bloqueia até que o buffer esteja cheio
fmt.Println(<-ch) // 1