java线程的生命周期可以用下图来表示
新建态:指新建一个线程,还没有调用start()方法。例如:Thread a = new Thread(),这个时候a就处于新建状态
就绪态:调用a.start()方法之后,a就处于就绪态。
**运行态:**a调用start()方法之后,并且获得了处理器的调度运行,这个时候a就是运行态了
死亡态:当a的run()方法运行结束后,a就进入了死亡态了
阻塞态:当a调用sleep()方法后,并且a的休眠时间还没有到,就进入了阻塞态。或者当a在读取IO,IO阻塞,或者等待同步锁,或者调用了wait()方法,这些线程都进入了阻塞态
如果线程正在运行,调用yeild()方法之后,线程将进入就绪态,重新竞争CPU资源。