[解決済み] チャネルの要素数
2022-11-23 16:50:39
質問
バッファリングされたチャネルを使用して、チャネル内にある要素の数をどのように測定するのですか? たとえば、私はこのようなチャネルを作成し、送信しています。
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
の数を測定したい。 msgs がチャンネルに send_ch .
測定とアクションの間に先取りが発生する可能性があるため、並行処理のために測定が正確でないことは承知しています (たとえば、次のビデオで説明されています)。 Google I/O 2012 - Go の並行処理パターン ). 私はこれをプロデューサーとコンシューマー間のフロー制御のために使用するつもりです。
どのように解決するのですか?
http://golang.org/pkg/builtin/#len
<ブロッククオート
func len(v Type) int
len組み込み関数は、その型に従って、vの長さを返します。
- 配列:vの要素数。
- 配列へのポインタ: *vの要素数(vがnilであっても)。
- スライス、またはマップ:vの要素数、vがnilの場合、len(v)は0。
- 文字列: vのバイト数。
- Channel: チャンネルバッファにキューイングされている(未読の)要素数。vがnilの場合、len(v)は0。
package main
import "fmt"
func main() {
c := make(chan int, 100)
for i := 0; i < 34; i++ {
c <- 0
}
fmt.Println(len(c))
}
が出力されます。
34
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーでSSLが有効になっていない
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] ログをファイルに書き出す方法
-
[解決済み] スライスを変数入力として渡すには?
-
[解決済み] 構造体の値をマップの値として設定すると、"cannot assign" エラーが発生するのはなぜですか?重複
-
[解決済み] 文字列を小文字に変換する方法を教えてください。
-
[解決済み] golangのスライスで要素を検索する方法
-
[解決済み] ゴルーチンからの戻り値をキャッチする
-
[解決済み] ユーザーのホームディレクトリを取得する
-
[解決済み] マップを含む値を順番に収集する