package main
import(
"fmt"
)
func main() {
channelInt := make(chan int)
for i:= 0; i < 5; i++ {
j := i
go func(j int) {
channelInt <- j
}(j)
}
fmt.Printf("==>%d\n", <-channelInt)
}
结果偶尔4偶尔0,因为你的for循环体没有什么内容,就是在不断创建协程,for循环结束后,这5个协程几乎无间隙连续被创建,在一个极短的时间间隙内创建多个协程,程序并不能精确的判断他们创建的先后顺序。
3楼的代码在for循环内sleep了一下,恰到好处。
#4
更多评论