ホームページ >バックエンド開発 >Golang >バッファリングされたチャネル内の要素の数はどのようにして決定しますか?

バッファリングされたチャネル内の要素の数はどのようにして決定しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-14 14:28:02451ブラウズ

How Do You Determine the Number of Elements in a Buffered Channel?

バッファリングされたチャネルの要素数の測定

バッファリングされたチャネルは、要素の一時的な保存を可能にしながら、ゴルーチン間の通信の便利な手段を提供します。フロー制御を効果的に管理するには、チャネルに現在存在する要素の数を判断する必要があります。

len 関数の使用

Go 言語には、len 組み込み関数が用意されています。チャネルを含むさまざまなデータ構造の長さを取得するために使用されます。バッファーされたチャネルのコンテキストでは、len 関数は、チャネル バッファー内で現在読み取られずにキューに入れられている要素の数を返します。

コード例

次のコードは、len 関数の使用法を示しています。バッファーされたチャネル内の要素の数を測定するには:

package main

import "fmt"

func main() {
    c := make(chan int, 100) // create a buffered channel with a capacity of 100
    for i := 0; i < 34; i++ {
        c <- 0 // send 34 elements to the channel
    }
    fmt.Println(len(c)) // print the number of unread elements in the channel
}

出力

コードを実行すると、次の出力が生成されます:

34

これにより、チャネルが34 個の要素が含まれています。同時実行性により、測定とアクションの間にプリエンプションが発生する可能性があるため、すべての場合において測定が正確であるとは限らないことに注意することが重要です。

以上がバッファリングされたチャネル内の要素の数はどのようにして決定しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。