ExpertiDict

Go · Intermediário · Inglês · Técnico

unbuffered channel

/ʌnˈbʌf.ɚd ˈtʃæn.əl/substantivo

Channel criado sem capacidade, com make(chan T). Cada envio só completa quando outra goroutine está pronta para receber, então ele sincroniza as duas pontas.

Onde usar

É o padrão quando você quer um ponto de encontro entre goroutines. Enviar e receber na mesma goroutine, sem outra do outro lado, trava o programa em deadlock.

Em código

ch := make(chan int)
ch <- 1 // ninguém recebe
// fatal error: all goroutines
// are asleep - deadlock!

Exemplos

An unbuffered channel blocks the sender until someone receives.

Um channel sem buffer bloqueia quem envia até alguém receber.

Sending on an unbuffered channel from main caused a deadlock.

Enviar em um channel sem buffer na main causou um deadlock.

Cuidado

Não confunda com buffered channel de capacidade 1; este ainda aceita um envio sem receptor, o sem buffer não.

Sinônimos

channel sem buffer

Antônimos

buffered channel

Veja também

Todos os termos de Go