Golang 并发编程中:为什么在 for select 的 case 分支中使用 return 会导致阻塞?
for select 里使用 return 阻塞问题
在 golang 并发编程中,使用 for select 语句处理多个通道提供了便捷的方式。然而,当在 for select 的 case 分支中使用 return 语句时,可能会导致阻塞。
考虑以下示例代码:
package main import ( "fmt" "sync" ) type cache struct { ch chan int } var ( _cache *cache _once sync.once ) func newcache() *cache { _once.do(func() { _cache = &cache{ ch: make(chan int), } _cache.monitor() }) return _cache } func (c *cache) push(x int) { c.ch <p>func (c *cache) monitor() {</p>go func() { for { select { case result, ok := <p>}</p>
以上就是Golang 并发编程中:为什么在 for select 的 case 分支中使用 return 会导致阻塞?的详细内容,更多请关注其它相关文章!