func main() {
boolChannel()
}
func boolChannel() {
ch1 := make(chan int)
ch2 := make(chan bool)
go func() {
for i:=0;i<5;i++ {
ch1 <- i
}
ch2 <- true //标识位写入 true
}()
go func() {
for x:= range ch1{
fmt.Println(x)
}
}()
<-ch2 //阻塞标识位
}
为什么这个输出结果一会是 0,1,2,3,一会是 0,1,2,3,4
按道理来说,我在主进程一直阻塞了,应该等 goroutine 全部打印完才对呀,百思不得其解