【发布时间】:2018-05-06 22:42:15
【问题描述】:
func sum(s []int, c chan int) {
sum := 0
for _, v := range s {
sum += v
}
c <- sum // send sum to c
}
func main() {
s := []int{7, 2, 8, -9, 4, 0}
c := make(chan int)
go sum(s[:len(s)/2], c)
go sum(s[len(s)/2:], c)
x := <-c
y := <-c
fmt.Println(x, y, x+y)
}
打印:-5、17、12
为什么不打印 17、-5、12 ?
我认为 x 应该是 17
【问题讨论】:
标签: go concurrency channel