Sobes.tech
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.