小白提问:go 通道发送操作的疑惑

Orocker · · 963 次点击
```go ch1 := make(chan int, 1) go func() { for i := 0; i < 10; i++ { //fmt.Printf("Sender: sending element %v ... \n", i) //这一行放在下面就明白了 ch1 <- i fmt.Printf("Sender: sending element %v ... \n", i) //放这里 } fmt.Println("Sender: close the channel") close(ch1) }() ```
#2
更多评论
其实这应该是乱序执行的结果. 你如果把 ```go fmt.Printf("Sender: sending element %v ... \n", i) ch1 <- i 改成 ch1 <- i fmt.Printf("Sender: sending element %v ... \n", i) ``` 你就能看到阻塞的效果了
#1