一、Java中线程的5种状态
在Java中,线程通常都有5种状态:创建、就绪、运行、阻塞和死亡。
1、创建状态(生):线程对象已创建,但没有调用线程对象的start方法。
2、就绪状态(可运行状态):当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,即当前线程有资格运行,但是还没有运行。在线程运行之后,从阻塞/等待/睡眠中回来之后,也会处于就绪状态。
3、运行状态:线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码。
4、阻塞状态(阻塞/等待/睡眠):线程正在运行的时候被暂停,通常是为了等待某个事件的发生(比如说某项资源就绪)之后再继续运行。suspend(不推荐使用),wait,sleep等方法都会导致线程阻塞。
5、死亡状态:如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪,如果在一个死去的线程上调用start方法,会抛出java.lang.IllegalThreadStateException异常。