Golang中国
package main

import "fmt"

func sum(a []int, c chan int) {
    total := 0
    for _, v := range a {
        total += v
    }
    c <- total // send total to c
}
func main() {
    a := []int{7, 2, 8, -9, 4, 0}
    c := make(chan int)
    go sum(a[:len(a)/2], c)
    go sum(a[len(a)/2:], c)
    x, y := <-c, <-c // receive from c
    fmt.Println(x, y, x+y)
}

输出结果为什么是: -5 17 12

1 回复
jimmykuu
#1 jimmykuu • 2015-11-20 21:52

goroutine 的顺序是不确定的。

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。