通过查看java1.8 Thread 类的源码,Java 线程状态一共分为5类:
1,new : 新建状态,这个线程表明线程刚刚创建还没有运行。
2,runnable:一个能够运行的线程状态,处与这个状态的线程 有可能正在jvm内部被执行,也有可能正在等待操作系统的调度。
3,blocked:阻塞状态,处于该状态的线程 正在等待一个synchronized 同步所,或这已经进入一个synchronized同步锁内调用了
lock.wait() 的方法。
4,waiting:等待状态,表明线程正在等待另一个线程的通知或者资源,比如一个线程调用了 lock.wait() 则正在等候另一个线程调用lock.notify()方法,或者一个线程调用了Thread.join()方法,或者调用了LockSupport.park()方法。
5,timed_waiting:线程超时等待状态,主要由一下方法引起,lock.wait(long) 或者 Thread.join(long) 或者 LockSupport.parkNons
LockSupport.parkUntil
6,terminated 线程终止状态,线程已经执行完毕。