1.创建状态
在程序中用构造方法创建一个线程对象后,新的线程对象就处于创建状态。此时,线程对象已经获取了相应的资源,但还没有处于可运行状态,这时可以通过Thread类的方法设置它的属性,如设置线程名(setName())、设置线程优先级(setPriority())等。
2.就绪状态
线程创建之后,就可以通过调用start()方法启动线程,即进入就绪状态。此时,线程将进入线程队列排队,等待CPU资源,这表明它已经具备了运行条件,在未获得CPU资源时,仍不能真正执行。
3.运行状态
当就绪状态的线程获得CPU资源时,即可进入运行状态,执行run()方法。对只有一个CPU的计算机而言,任何时刻只能有一个处于运行状态的线程占用CPU,即获得CPU资源。
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态。阻塞状态是一种"不可运行"的状态,而处于这种状态的线程在得到一个特定的事件后会转回可运行状态。
5.死亡状态
一个线程的run()方法运行完毕,线程则进入死亡状态。处于死亡状态的线程不具有继续运行的能力。