1
我有第一个命令行输入后捞出由于僵局以下小例子:单通道和select语句僵局
package main
import "fmt"
import "os"
func main() {
channel1 := make(chan string)
go func() {
var str string
for {
fmt.Fscanln(os.Stdin, &str)
channel1 <- str
}
}()
for {
select {
case str := <-channel1:
fmt.Printf("Channel1 said: %v\n", str)
}
}
}
我本来期望这只是简单地采取用户输入和回声过来并重新开始。另外,我注意到如果我添加第二个频道和第二个去程序,它没有任何死锁问题。那么为什么会出现这种僵局呢?
我正在运行1.0.2,升级到1.0.3似乎已经解决了这个问题。感谢您指点我正确的方向! – Chris