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:
-
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.
-
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.