有个问题一直不解,发个帖解惑下

RingoBool · · 655 次点击
应该是程序跑太快了,结束了主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
更多评论
错了,是没来得及输出2
#2
嗯 理解了 刚sleep下 就出来了
#3