六种状态:
1New新建:
new Thread()新建一个线程但还没有运行start()时
2Runnable可运行
线程调用start()方法后进入Runnable状态
3Blocked被阻塞
线程进入synchronized代码块时未能获取相应的monitor锁进入Blocked状态
4Waiting等待
线程没有获取到除synchronized锁外的其他锁(如ReentrantLock)会进入Waiting状态,本质上是执行了LockSupport.park()方法
5Time Waiting计时等待
和Waiting的区别是Time Waiting会设置等待时间。
6Terminated被终止
线程run()方法执行完或者线程出现了一个没有捕获的异常终止了run()方法