线程状态:在给定时间点上,一个线程只能处于一种状态。
public enum State {
NEW,//创建状态
RUNNABLE,//可运行状态
BLOCKED,//受阻塞并且正在等待监视器锁的某一线程的线程状态,是在多个线程有同步操作的场景
WAITING,//等待状态
TIMED_WAITING,//定时的,等待不到来,也将定时唤醒自己。
TERMINATED //终止状态
}
备注:区分 BLOCKED 和 WATING 的区别, 一个是在临界点外面等待进入, 一个是在临界点里面wait等待别人notify, 线程调用了join方法 join了另外的线程的时候, 也会进入WAITING状态, 等待被他join的线程执行结束
线程常用函数:
start();
stop();调用thread.stop()会导致线程所持有的所有锁的突然释放(不可控制),被保护数据有可能不一致。
join(); 让一个线程等待另一个线程完成的方法
notify / notifyAll
isAlive()
isInterrupted()
interrupt()
线程优先级:1-10
这里补上线程状态图
问题:线程同步,守护线程,线程池状态图?