Usando un canale bufferizzato, come misurare quanti elementi ci sono nel canale? Ad esempio, sto creando e inviando su un canale come questo:
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
Voglio misurare quanti msg sono nel canale send_ch .
Sono consapevole che a causa della concorrenza la misurazione non sarà esatta, poiché potrebbe verificarsi una prelazione tra la misurazione e l'azione (ad esempio discusso in questo video Google I / O 2012 - Go Concurrency Patterns ). Lo userò per il controllo del flusso tra produttori e consumatori, ovvero una volta passato attraverso un limite massimo, modificando alcuni comportamenti fino a quando non passo nuovamente attraverso un limite minimo.