Sobes.tech
Junior — Middle

O que acontece se fizer uma gravação num canal cujo buffer está completamente cheio?

sobes.tech IA

Resposta da IA

Em Go, se tentar escrever um valor num canal com buffer que está completamente cheio, a operação de escrita ficará bloqueada até que haja espaço disponível no canal (ou seja, até alguém ler do canal). Isto garante a sincronização entre goroutines e evita perda de dados.

Exemplo:

ch := make(chan int, 2) // buffer de 2 elementos
ch <- 1
ch <- 2
// ch <- 3 // aqui, a escrita ficará bloqueada até alguém ler de ch