![image.png](https://static.studygolang.com/181129/3f42c24b62c73e211c567e51a1d1b2aa.png)
执行结果为啥只输出 0 和 1
![image.png](https://static.studygolang.com/181129/a06939e7d4ed11b37b2464261e3a8ada.png)
更多评论
应该是程序跑太快了,结束了主goroutine,还没来得输出3
````go
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")
}
}
````
执行我这段代码,就可以发现问题了。
#1