假设我们选择两个通道。运行几次后,其中一个通道关闭。我怎样才能摆脱选择?
package main
import (
"fmt"
)
func main() {
ch := make(chan int)
closed := make(chan bool, 1)
go func() {
for i := 0; i < 5; i++ {
ch <- 1
}
close(ch)
}()
for {
select {
case v := <-ch:
fmt.Printf("v is %v\n", v)
case <-closed:
fmt.Println("The server is closed!")
return
}
}
fmt.Println("Break!")
}
Run Code Online (Sandbox Code Playgroud)
就被无限封锁了。如何让它发挥作用?
go ×1