老师,是否可以理解goroutine是非抢占式的,而Goroutine的任务调度是抢占式的?
来源:10-2 go语言的调度器

天山老妖
2018-12-30
老师,是否可以理解goroutine是非抢占式的,而Goroutine的任务调度是抢占式的?
写回答
2回答
-
冼星扉
2021-05-24
go 1.14 之后,调度由协作式(非抢占)变为抢占式了。后台有一个sysmon的线程来调度,其中一种情况是:groutine执行超过10ms(如cpu密集型任务)就会被抢占。
00 -
ccmouse
2019-01-07
goroutine还是goroutine的调度,其实是一个意思。这里看我们站在哪里看。从操作系统角度看,它就是非抢占式的。从我们上层的代码角度看,它也是非抢占式但有些情况也不具有完全的确定性。比如io操作,或者显式调用runtime.Gosched,它们只是告诉调度器我愿意在这里出让控制权。
00
相似问题