使用缓冲通道,如何测量通道中有多少个元素?例如,我正在这样创建和发送频道:
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
我想衡量有多少封邮件都在通道send_ch。
我知道由于并发,该度量将不准确,因为在度量和操作之间可能会发生先发制人(例如,在此视频中讨论的Google I / O 2012-Go并发模式)。我将使用它在生产者和消费者之间进行流控制,即,一旦我通过了较高的水印,就更改了某些行为,直到我通过了较低的水印。
相关分类