1. 当前运行线程主动放弃cpu,JVM暂时放弃CPU操作(基于时间片轮转调度的JVM操作系统不会让线程永久放弃CPU,或者说放弃本次时间片的执行权),例如调用yield()方法
2. 当前运行线程因为某些原因进入阻塞状态,例如阻塞在i/o上
3. 当前运行线程结束,即运行完run()方法里面的任务
1. 当前运行线程主动放弃cpu,JVM暂时放弃CPU操作(基于时间片轮转调度的JVM操作系统不会让线程永久放弃CPU,或者说放弃本次时间片的执行权),例如调用yield()方法
2. 当前运行线程因为某些原因进入阻塞状态,例如阻塞在i/o上
3. 当前运行线程结束,即运行完run()方法里面的任务