java面试JAVA并发java基础 集合 特性

Java 线程的状态及切换

2017-03-15  本文已影响1995人  FX_SKY

线程的生命周期

Java语言中定义了5种线程状态,在任意一个时间点,一个线程只能有且只有其中一种状态,这5种状态是:

线程间的状态转换

1、新建(New)

新创建了一个线程对象,还未调用start()方法。

Thread thread = new Thread();

2、就绪(Ready)

线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中 获取cpu 的使用权 。

3、运行中(Running)

可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。

4、限期等待(Timed Waiting)

也可以称作 TIMED_WAITING(有等待时间的等待状态)。

线程主动调用以下方法:

5、无限期等待(Waiting)

运行中(Running)的线程执行了以下方法:

6、阻塞(Blocked)

阻塞状态是指线程因为某种原因放弃了cpu 使用权,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分两种:

7、结束(Terminated)

线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。

参考资料

线程的生命周期

上一篇下一篇

猜你喜欢

热点阅读