time.Sleep()是否会阻塞上下文?

时间:2019-04-04 15:35:23

标签: go goroutine

Documentation提到, Sleep将当前goroutine(G)暂停至少持续时间d

G在持续时间d中不能进入运行队列(下面的灰色圆圈)。

enter image description here

https://morsmachine.dk/go-scheduler


P是上下文。 M是内核线程

假设有8个内核线程(因为8个核心CPU-runtime.NumCPU()

运行时维护runtime.GOMAXPROCS(runtime.NumCPU())个上下文。


使用GO 1.12版

1)Goroutine(G)在哪个队列中等待持续时间d?我看到运行队列(灰色上方)

2)在那个持续时间d中,那个对应的上下文(P)是否在同一内核线程(M)上从其运行队列中调度另一个Goroutine?

3)GO程序可以在特定上下文(P)运行队列中安排Goroutine吗?

0 个答案:

没有答案