Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go time.Sleep()是否阻止上下文?_Go_Goroutine - Fatal编程技术网

Go time.Sleep()是否阻止上下文?

Go time.Sleep()是否阻止上下文?,go,goroutine,Go,Goroutine,提到,Sleep会将当前goroutine(G)暂停至少一段时间d G在d期间不能在运行队列(下面的灰色圆圈)中 p是上下文M是内核线程 假设有8个内核线程(因为8个内核CPU-runtime.numpu()) 转到运行时维护runtime.GOMAXPROCS(runtime.numpu())上下文数 使用GO版本1.12 1) Goroutine(G)在哪个队列中等待持续时间d?我看到跑步队列(上方为灰色) 2) 在该持续时间d,相应的上下文(p)是否从同一内核线程(M)的运行队列中调

提到,Sleep会将当前goroutine(
G
)暂停至少一段时间d

G
d
期间不能在运行队列(下面的灰色圆圈)中


p
是上下文
M
是内核线程

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

转到运行时维护
runtime.GOMAXPROCS(runtime.numpu())
上下文数


使用GO版本1.12

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

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

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

0)为什么这很重要?这些是低级实现细节,可能会在版本和目标OS/arch之间发生更改。1) 运行队列就是队列。2) 是的,调度另一个goroutine是调用
Sleep
的关键。3) 不,程序无法控制低级调度细节,因此不应在意。