Go チャネルのバッファリング動作: make(chan bool) と make(chan bool, 1)
バッファリングされていないチャネル、make を使用して作成(chan bool) は、値を保持する能力が make(chan bool, 1) で定義されたバッファリングされたチャネルとは異なります。
バッファリングされていないチャネル: make(chan bool)
例:
<code class="go">chanFoo := make(chan bool) // Writes will block because no receiver is waiting chanFoo <- true // Corresponding read will now succeed even though no value was sent <-chanFoo</code>
バッファリングされたチャネル: make(chan bool, 1)
例:
<code class="go">chanFoo := make(chan bool, 1) // Write will succeed immediately chanFoo <- true // Subsequent read will also succeed <-chanFoo</code>
動作の違い
バッファなしチャネルの実用性
バッファなしの間チャネルは直感的ではない、またはあまり役に立たないように見えるかもしれませんが、特定のアプリケーションがあります:
以上がGo チャネルの `make(chan bool)` と `make(chan bool, 1)` のバッファリング動作の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。