バッファ付きチャネルは、Go 関数の同時プログラミングでデータを安全に転送する効果的な方法です。送信または受信するデータを保存するために固定サイズのバッファを作成します。 make を使用してバッファ チャネルを作成し、容量を指定します。プロデューサーのゴルーチンは chan
Go 言語関数の同時プログラミングにおけるバッファ チャネルの使用
Go 言語関数の同時プログラミングではバッファ チャネルが非常に役立ちますゴルーチン間でのデータの安全な受け渡しを可能にします。これは、送受信されるデータを格納する固定サイズのバッファを作成することによって行われます。
バッファ チャネルの作成
bufferedChannel := make(chan int, 10)
ここの 10
はバッファの容量を表し、最大 10 個の整数を保存できます。
ゴルーチン間の通信
プロデューサーのゴルーチンは、chan<-
演算子を使用してチャネルにデータを送信できます:
go func() { bufferedChannel <- 42 }()
コンシューマ goroutine は、<-chan
演算子を使用してチャネルからデータを受信できます。プロデューサーのゴルーチンから乱数を生成し、それを印刷のためにコンシューマーのゴルーチンに渡す簡単なプログラムを作成してみましょう。
コードは次のとおりです:
go func() { fmt.Println(<-bufferedChannel) }()
この例では、バッファーの容量を 10 に設定します。これは、プロデューサーのゴルーチンが 10 個の乱数を生成できることを意味します。ブロックせずに並行して。コンシューマのゴルーチンは、チャネルが閉じられるまで、チャネルから乱数を受信してループします。
以上がGolang関数同時プログラミングでバッファチャネルを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。