Go如何决定何时在goroutines之间切换?

abc*_*bar 6 concurrency go goroutine

我很好奇Go语言如何安排goroutines.它是仅在通道请求和I/O期间切换还是具有周期性协程切换循环?

Emi*_*röm 8

Go还没有抢占式调度程序,但计划1.2.所以不,Go不会在仅CPU计算期间切换上下文,仅在I/O期间(如果内存不在寄存器中,则从内存读取也被视为I/O).您可以在问题543 - 先发制人安排中阅读有关它的一些讨论.