1.新建状态(New):
创建一个新的线程对象。
2.就绪状态(Runnable):
线程创建对象后,其他线程调用start()方法,该线程处于就绪状态,资源已经准备就绪,等待CPU资源。
3.运行状态(Running):
处于就绪状态的线程获取到CPU资源后进入运行状态。
4.阻塞状态(Blocked):
阻塞状态是线程由于某些原因放弃CPU使用,暂时停止运行。
(1)等待阻塞:线程调用start()方法,JVM会把这个线程放入等待池中,该线程需要其他线程调用notify()或notifyAll()方法才能被唤醒。
(2)同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被其他线程占用,则JVM会把该线程放入锁池中。
(3)其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5.终止状态(Terminated):
线程run()方法运行完毕,该线程结束。