请教,为什么sum1是40呢,我感觉应该是15呀?

s11g · · 1877 次点击
afeifqh
寻找golang方面的开发工作
正常逻辑是15,可是加go 关键字了。谁先执行,谁后先执行,就不一样了。
#2
更多评论
qkb_75_go
琴为心声
难道 UP 主不知道 go 的调度和运行时随机的吗?
#1
加go后的调度是无序的,不一定是先加先运行的哦。 另外: package main import "fmt" var ( resultChan chan int = make(chan int, 1) ) func sum(values []int) { sum := 0 for _, value := range values { sum += value } resultChan <- sum // 将计算结果发送到channel中 } func main() { values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} go sum(values[:len(values)/2]) go sum(values[len(values)/2:]) sum1 := <-resultChan + <-resultChan // 接收结果 fmt.Println("Result:", sum1) } 这样写会不会有什么不妥?
#3