执行结果为啥只输出 0 和 1
应该是程序跑太快了,结束了主goroutine,还没来得输出3
package main
import (
"fmt"
"time"
)
func main() {
intChan := make(chan int)
flag := true
go func() {
for i := 0; i < 3; i++ {
fmt.Println("i的值:", i)
intChan <- i // 发送信号量
fmt.Println(i)
if i == 2 {
flag = false
}
}
}()
time.Sleep(time.Second * 2)
<- intChan // 移除信号量
<- intChan
<- intChan
for flag{
fmt.Println("go")
}
}
执行我这段代码,就可以发现问题了。