请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

插入代码

2回答

冼星扉 2021-05-24 17:49:59

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

0 回复 有任何疑惑可以回复我~
ccmouse 2019-01-07 20:37:42

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号