前言
之前被面试官问道了线程调度,没有回答上来。在百度中得知JVM是抢占式的线程调度,但什么是抢占式?直到我学习了操作系统的线程调度,更加迫切的想要解开这个谜题。
为什么说Jvm是抢占式的线程调度,我们都知道linux是时间片轮询的,那抢占式调度和分时调度有有什么区别。带着这个问题,又开始了我的学习之旅。
开始学习
我又去看了这份操作系统的专栏。里面的目录正好解决了我的疑惑。

原来,抢占式线程调度,其实就是分时调度的一种升级。和他相对应的是非抢占式。
非抢占式

非抢占式指的是,只要线程掌握了执行权,他就会一直运行,除非他有io操作,或者主动停下来进行线程让步。
抢占式

而抢占式调度和分时调度一样的是,每个线程都有时间片,运行时间到了,就会停下来换人。而他的抢占,体现在优先级上,只要等待对列中有高优先级的线程。那么当前的cpu执行权就会在合适的时间被高优先级线程抢占。所以其实可以理解为,linux的线程调度策略就是一种抢占式调度,和jvm的调度策略是一样的。

END
后台回复关键词 操作系统 获取今日推荐资料
微信8.0新增了一万的好友数,之前没加上好友的可以加一下我的个人微信,再晚又满了,一起抱团取暖,结伴内卷。

扫码拉群,学习打卡,交流经验
每周一读
文章转载自阿斌Java之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




