Используя буферный канал, как измерить количество элементов в канале? Например, я создаю и отправляю по каналу, как это:
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
Я хочу измерить, сколько msgs находится в канале send_ch.
Я знаю, что из-за concurrency измерение не будет точным, так как может произойти превенция между измерением и действием (например, обсуждаются в этом видео Google I/O 2012 - Перейти concurrency Шаблоны). Я буду использовать это для управления потоком между производителями и потребителями, т.е. Когда я прошел через высокий водяной знак, изменив какое-то поведение, пока не пройду через низкий водяной знак.