JVM的线程调度实现(抢占式调度)
Java使用的线程调使用抢占式调度,Java中线程会按优先级分配CPU时间片运行,且优 先级越高越优先执行,但优先级高并不代表能独自占用执行时间片,可能是优先级高得到越多 的执行时间片,反之,优先级低的分到的执行时间少但不会分配不到执行时间。
线程让出cpu的情况
1、 当前运行线程主动放弃CPU, JVM暂时放弃CPU操作(基于时间片轮转调度的JVM操 作系统不会让线程永久放弃CPU,或者说放弃本次时间片的执行权),例如调用yield()方法。
2、 当前运行线程因为某些原因进入阻塞状态,例如阻塞在I/O上。
3、 当前运行线程结束,即运行完run()方法里面的任务。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.