Junior — Middle
Como é que se pode gerir o tamanho do buffer num canal?
sobes.tech IA
Resposta da IA
Em Go, o tamanho do buffer do canal é definido na sua criação com a função make. Se indicar o segundo parâmetro, este será o tamanho do buffer, ou seja, a quantidade de elementos que o canal pode armazenar sem bloquear o remetente.
Exemplo de criação de um canal com buffer de tamanho 5:
ch := make(chan int, 5)
Se o buffer estiver cheio, o envio para o canal bloqueia até que alguém leia do canal. Se o buffer for 0 (ou o parâmetro não for especificado), o canal é não-buffer e o envio bloqueia até que um valor seja recebido.
Assim, a gestão do tamanho do buffer resume-se a indicar o segundo parâmetro na criação do canal.