一、线程的7种状态:
1、NEW:线程对象已经被创建了,但还未调用start()方法之前的状态
2、RUNNABLE:处于该状态的线程,在等待JVM分配需要的资源,比如CPU,当线程调用了start()方法之后立马会进入该状态
3、BLOCKED:此状态的线程在等待监控锁来进入同步块或同步方法,或者在调用Object.wait以后重新进入同步块或同步方法
4、WAITING:当调用了Object.wait(), Thread.join(),LockSupport.park()这三个方法之后就会进入等待状态
5、TIMED_WAITING:当调用了Thread.sleep()、Object.wait(long)、 Thread.join(long)、LockSupport.parkNanos、LockSupport.parkUntil这五个方法以后,线程就进入了时间等待状态
6、TERMINATED:线程终止状态,当线程已完成执行就进入当前状态
7、RUNNING:线程运行的状态
二、线程状态转换图: