1. 新建
使用new关键字创建了一个线程对象,初始化了其成员变量
2. 就绪
调用start()方法,但此时jvm还未调用它。
3. 运行
jvm调用了线程,开始执行run()方法。
4. 阻塞
使用了某些方法使线程进入了阻塞状态
- 线程调用sleep()
- 线程中使用了wait()方法,或者await()方法,等待其他线程唤醒
- 调用了阻塞式io方法
- 试图获得一个同步监视器,但被其他线程占用
5. 死亡
有两种情况,一个线程的run方法执行完毕,另一个是线程执行期间抛出了未捕获的异常