Silentdoer

导航

抢占式调度理解

1.抢占式调度应该这样理解,调度那肯定是调度器调度,比如操作系统;

因此这个抢占式是指操作系统会抢占式调度线程,线程A获得了CPU后,过一段时间会被操作系统给抢掉给其他线程;

抢占式还有个重要概念是,线程有优先级,优先级高的线程可以通过操作系统抢占CPU

 

调度肯定是调度器来调度,所以对于Linux系统而言,抢占式调度是Linux系统调度线程时是抢占式的,即能够强制将cpu从当前执行的线程改调度其他线程。

非抢占式调度则是比如Dart里,如果一个task(协程)里一直while循环执行计算逻辑而没有await,则这个task会一直占用资源该Isolate的资源而不会被Isolate强制暂停;但是它可以主动await让出CPU,所以是非抢占式调度;

 

2.非抢占式调度则是只线程获得CPU后会一直执行,直到它通过类似sleep主动让出CPU

posted on 2023-11-12 17:27  Silentdoer  阅读(61)  评论(0编辑  收藏  举报