【发布时间】:2019-06-13 10:15:16
【问题描述】:
例如我有这个代码:
package main
import (
"fmt"
)
func main() {
c1 := make(chan interface{})
close(c1)
c2 := make(chan interface{})
close(c2)
var c1Count, c2Count int
for i := 1000; i >= 0; i-- {
select {
case <-c1:
c1Count++
case <-c2:
c2Count++
}
}
fmt.Printf("c1Count: %d\nc2Count: %d\n ", c1Count, c2Count)
}
运行时,输出将是:
c1Count: 513
c2Count: 488
我不知道的是:我们什么都不做就创建了 c1 和 c2 通道。为什么在 select/case 块中,c1Count 和 c2Count 可以增加值?
谢谢
【问题讨论】: