Sobes.tech
Junior — Middle

Sob quais condições ocorre bloqueio ao usar um canal bufferizado no sistema de transmissão de dados?

sobes.tech IA

Resposta da IA

No Go, um canal com buffer bloque-se em dois casos principais:

  1. Ao enviar (escrever) para o canal: se o buffer do canal estiver cheio (ou seja, o número de elementos no canal atingiu a sua capacidade), a tentativa de enviar um novo valor bloqueia a goroutine até que alguém leia do canal e libere espaço.

  2. Ao ler do canal: se o canal estiver vazio (sem elementos para ler), a tentativa de ler do canal bloqueia a goroutine até que alguém envie um novo valor.

Assim, o bloqueio ocorre ao tentar enviar dados para um buffer cheio ou ao tentar ler de um buffer vazio.