バッファリングされたチャネルを使用して、チャネル内の要素の数をどのように測定しますか?たとえば、次のようなチャネルを作成して送信しています。
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
チャネルsend_chにあるメッセージの数を測定したいと思います。
測定とアクションの間にプリエンプションが発生する可能性があるため、同時実行性のために測定値が正確ではないことを認識しています(たとえば、このビデオGoogle I / O 2012-Go Concurrency Patternsで説明されています)。これをプロデューサーとコンシューマー間のフロー制御に使用します。つまり、高水準点を通過したら、低水準点を通過するまで動作を変更します。