管道是先进先出的,为什么第一个的代码中X是-5呢
回答:
并发的协程执行是无须的。
先执行 sum(s[len(s)/2:], c)
, c 里面第一个数据就是 -5 喽
回答:
你并不能保证前一个go程里的for循环比后一个go程里的先执行。
回答:
go那个goroutine先执行是调度器负责的,如果核心只有一个,那么一定是最后一个goroutine最先执行。
回答:
有两种方式可以解决你的疑问:
1、你可以加个休眠时间:
x := <-c y := <-c
time.Sleep(1)
2、一个一个取:
go sum(s[:len(s)/2],c) x := <-c
go sum(s[len(s)/2:],c)
y := <-c
以上是 管道是先进先出的,为什么第一个的代码中X是-5呢 的全部内容, 来源链接: utcz.com/p/182107.html