一,线程的五种状态
1.新建状态:继承Thread或实现Runnable接口,通过调用new操作,来开辟线程空间,为当前的线程统一分配相关的系统资源等,not alive。
2.就绪状态:当资源分配完毕后,线程已具备了相关的可运行的条件,start()方法执行完毕后,线程进入就绪状态,既一旦得到CPU执行权,即可执行的状态,alive。
3.运行状态:处于就绪状态的线程,并不一定会立即运行run()方法,而是当线程获取到CPU后,开始真正的运行run()方法,一旦run()方法开始执行,则表明该线程进入了运行状态,alive。
4.阻塞状态:运行中的线程,因为各种原因,导致线程被挂起,睡眠,等待,此时线程进入阻塞状态,alive,如:
1).调用sleep()方法睡眠
2).调用wait()方法等待
3).IO资源被阻塞
5.死亡状态:线程Run方法正常结束或异常猝死,可通过isAlive()方法来判断一个线程是否已经进入了死亡状态,not alive。