バッファリングされたチャネルの要素数の測定
Go では、バッファリングされたチャネルを使用して要素をバッファリングまたはキューに保存できます。バッファリングされたチャネル内の要素の数を決定することは、フロー制御やその他の操作にとって不可欠です。
要素の数を測定する方法
要素の数を測定するにはバッファリングされたチャネルの場合は、組み込み関数 len() を使用できます。この関数は、チャネル内の要素の数を含む値の長さを返します。
len(ch)
これをコード スニペットに適用する方法は次のとおりです。
send_ch := make(chan []byte, 100) // code send_ch <- msg count := len(send_ch)
カウント変数には、現在 send_ch チャネルにあるメッセージの数が含まれるようになります。
精度に関する考慮事項
len() を使用して取得された測定値は正確ではない可能性があることに注意することが重要です。同時実行性の問題のため。プリエンプションは測定と後続のアクションの間に発生する可能性があり、チャネル内の要素の数が変化する可能性があります。
ただし、フロー制御の目的では、多くの場合、おおよその測定で十分です。測定を使用して、特定の最高または最低ウォーターマークを超えたときにアクションをトリガーできます。
使用例
ここでは、len() を使用して測定する方法を示す例を示します。チャネル内の要素の数:
package main import ( "fmt" ) func main() { c := make(chan int, 100) for i := 0; i < 34; i++ { c <- 0 } fmt.Println(len(c)) // Outputs: 34 }
このプログラムは、バッファリングされたチャネルに 34 個の要素を送信し、len() を使用してチャネル内の要素の数を出力します。
以上がGo でバッファリングされたチャネル内の要素の数を数えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。