老师,是否可以理解goroutine是非抢占式的,而Goroutine的任务调度是抢占式的?

来源:10-2 go语言的调度器

天山老妖

2018-12-30

老师,是否可以理解goroutine是非抢占式的,而Goroutine的任务调度是抢占式的?

写回答

2回答

冼星扉

2021-05-24

go 1.14 之后,调度由协作式(非抢占)变为抢占式了。后台有一个sysmon的线程来调度,其中一种情况是:groutine执行超过10ms(如cpu密集型任务)就会被抢占。

0
0

ccmouse

2019-01-07

goroutine还是goroutine的调度,其实是一个意思。这里看我们站在哪里看。从操作系统角度看,它就是非抢占式的。从我们上层的代码角度看,它也是非抢占式但有些情况也不具有完全的确定性。比如io操作,或者显式调用runtime.Gosched,它们只是告诉调度器我愿意在这里出让控制权。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程