Go 时间。睡眠()会屈从于其他的快乐吗?

Go 时间。睡眠()会屈从于其他的快乐吗?,go,concurrency,scheduling,Go,Concurrency,Scheduling,在Go中,对time.Sleep()的调用是否会屈服于其他goroutine?我有一种感觉是这样的,但在其他答案中(例如:)时间。睡眠并没有明确列为一个计划点。是的。看 在以前的版本中,一个永远循环的goroutine可能会耗尽同一线程上的其他goroutine,当GOMAXPROCS只提供一个用户线程时,这是一个严重的问题。在Go 1.2中,部分解决了这一问题:在进入函数时偶尔调用调度程序。这意味着任何包含(非内联)函数调用的循环都可以被抢占,从而允许其他goroutine在同一线程上运行 以

在Go中,对time.Sleep()的调用是否会屈服于其他goroutine?我有一种感觉是这样的,但在其他答案中(例如:)时间。睡眠并没有明确列为一个计划点。

是的。看

在以前的版本中,一个永远循环的goroutine可能会耗尽同一线程上的其他goroutine,当GOMAXPROCS只提供一个用户线程时,这是一个严重的问题。在Go 1.2中,部分解决了这一问题:在进入函数时偶尔调用调度程序。这意味着任何包含(非内联)函数调用的循环都可以被抢占,从而允许其他goroutine在同一线程上运行

以下设计文档也是了解调度器更多信息的好读物:


是的。虽然睡眠在某种意义上是特殊的,但所有函数调用都是屈服点。虽然我知道系统调用屈服,但您是否有“所有函数调用都是屈服点”的参考资料?我还没有找到它的证据。