线程从创建到死亡的五种状态
线程一共有五种状态:新建、就绪、运行、阻塞、死亡。
1、新建状态:当我们使用关键字new出一个线程来时,线程此时还没有运行,也没有就绪,只是单单的新建状态。
2、就绪状态:当程序运行到了线程中的start()方法时,此时的线程进入了就绪状态,进入就绪状态的线程不一定马上运行而进入运行状态(不一定马上执行线程中的run()方法),需要等待CPU分配到时间片段。
3、运行状态:当CPU分配时间片段给到线程后,程序会执行线程的run()方法,此时线程进入了运行状态。
4、阻塞状态:阻塞状态是运行状态中的线程没有执行完run()方法里面的方法体而让出CPU运行的时间片段。在运行中的线程可能由于某种原因使得线程进入阻塞状态:比如线程里调用了slepp()方法而进入睡眠状态,线程尝试获得锁但锁被其他线程占用或等待某个条件触发等等。
5、死亡状态:线程中的run()方法体正常执行完,线程正常死亡;发生了异常而未捕获也会导致线程死亡。