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 Channels 中 `make(chan bool)` 和 `make(chan bool, 1)` 之間的緩衝行為有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!