一共包括六种线程状态
- NEW(新建状态):当我们创建一个新的Thread对象时,该线程就处于这个状态.
- RUNNABLE(可运行状态):当我们对该下对象调用start()时,线程就进入了可运行状态,在这个状态下,线程做好了准备接受cpu的调度,这个状态包括就绪和运行.
- BLOCKED(阻塞状态):当一个线程等待一个锁去进入一段代码块时,就会进入阻塞状态.只有当该所被释放,线程才会进入runnable.
- WAITING(等待状态):当线程调用了其他线程的join方法,或者调用了无参数的wait方法,只有当其他线程结束才可以进入runnable.
- TIMED_WAITING(定时等待状态):线程进入了定时等待状态,是因为线程调用了sleep或者是join方法.在指定的时间过去后,线程会自动返回runnable状态.
- TERMINATED(终止状态):线程任务执行完毕或者异常终止,在这个状态下线程的生命周期已经结束,不能在转换到其他状态.