Java中的线程会按照优先级分配CPU时间片运行,那么线程什么时候放弃CPU使用权?

时间:2021-03-27 21:13:50

1.      当前运行线程主动放弃cpu,JVM暂时放弃CPU操作(基于时间片轮转调度的JVM操作系统不会让线程永久放弃CPU,或者说放弃本次时间片的执行权),例如调用yield()方法

2.      当前运行线程因为某些原因进入阻塞状态,例如阻塞在i/o上

3.      当前运行线程结束,即运行完run()方法里面的任务