[解決済み] チャネルバッファサイズとは何ですか?
2023-01-29 01:53:03
質問
私は非同期チャネルを作成しようとしています。 http://golang.org/ref/spec#Making_slices_maps_and_channels .
c := make(chan int, 10) // channel with a buffer size of 10
バッファサイズが10というのはどういう意味ですか?バッファサイズは具体的に何を表し、何を制限しているのでしょうか?
どのように解決するのですか?
バッファサイズは、送信をブロックすることなくチャネルに送信できる要素の数です。デフォルトでは、チャネルは 0 のバッファサイズを持っています (これは
make(chan int)
). これは、すべての送信は他のゴルーチンがチャネルから受信するまでブロックされることを意味します。バッファサイズ1のチャネルは、送信ブロックが発生するまで1つの要素を保持することができるので、次のようになります。
c := make(chan int, 1)
c <- 1 // doesn't block
c <- 2 // blocks until another goroutine receives from the channel
関連
-
[解決済み】チャンネルを開いたままにしておいてもいいのでしょうか?
-
[解決済み] intをint64に変換するには?
-
[解決済み] ゴルーチンの停止方法
-
[解決済み] スライスを格納する interface{} 上の範囲
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] スライスを変数入力として渡すには?
-
[解決済み] テキストファイルを文字列配列に読み込む(そして書き込む)
-
[解決済み] 複数のファイルからなるGoプログラムをコンパイルするには?
-
[解決済み] ユーザーのホームディレクトリを取得する
-
[解決済み] コンパイルしたファイルのサイズを小さくするには?
最新
-
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 実装 サイバーパンク風ボタン