立即学习:https://edu.csdn.net/course/play/26270/326860?utm_source=blogtoedu
1.线程的状态;
Thread源码中:
- NEW:线程创建但还没调用start();
- RUNNABLE:可运行线程的状态,状态已在JVM虚拟机中执行,但可能等待系统资源,包含RUNNING和READY;
- BLOCKED:阻塞的线程,等待监视器锁,来进入或重入synchronized代码块;
- WAITING:等待状态,需其他线程中断或通知来唤醒;
- TIMED_WATING:定时等待状态,指定等待时间后返回,或提前被其他线程中断或通知返回;
- TERMINATED:终止线程的状态。线程已执行完成;
2.线程方法:
- Thread.yield()线程让步,使用后当前线程将退出CPU时间片,让其他线程或当前线程使用CPU时间片执行;
- Thread.sleep():线程休眠,主动让出当前CPU时间,指定时间后,CPU返回继续执行该线程。sleep不会释放当前所持有的锁;
- Thread.join():等待该线程死亡/终止,当前线程会等待调用该方法的线程执行完毕后才继续执行;
- Object.wait():调用前必须拥有对象锁,例如synchronized代码块内,调用wait方法时,对象的锁会释放;
3.线程的几种状态/不同状态的定义/不同状态的切换--线程状态图/常见的方法的语义;