2016 - 2024

感恩一路有你

线程的6种状态 JVM线程状态都有哪几种?

浏览量:1600 时间:2021-03-16 03:51:13 作者:admin

JVM线程状态都有哪几种?

[1]新状态:创建线程实例时,即使用New关键字和thread类或其子类创建thread对象。此时,线程处于新状态。处于新状态的线程有自己的内存空间,但线程没有运行。此时,线程不活动。

[2]可运行:通过调用线程实例的start()方法启动线程,使线程进入可运行状态。处于就绪状态的线程已经有了运行条件,但是它还没有分配给CPU,也就是说,它不会立即执行。此时,它处于线程就绪队列中,等待系统将CPCU分配给它,等待状态不是线程处于活动状态的执行状态。

[3]运行状态:一旦获得CPU(由JVM选择),线程将进入运行状态,线程的run()方法将被执行。处于运行状态的线程将在自己的run()方法中执行该操作,直到它调用其他方法,或等待某些资源阻塞,或完成任务并死亡。如果在给定的时间段内运行失败,处于运行状态的线程将在自己的run()方法中执行该操作,当执行结束时,它将被系统替换并返回到线程的等待状态;此时,线程处于活动状态。

[4]阻塞:线程通过调用join()、sleep()、wait()被阻塞,或者资源被临时使用;处于阻塞状态的线程仍然处于活动状态。

[5]死状态:当线程的run()方法异常完成、中断或退出时,线程将进入死状态。此时,可能仍然存在线程的实例对象。当该线程不再被视为独立线程时,该线程的独立调用堆栈已被解析。一旦线程进入死状态,它就不能再进入独立线程的生命周期。对于处于死状态的线程调用start()方法,将出现运行时异常;处于死状态的线程不是活动的。

线程的6种状态 线程的四种状态 cpu线程越多越好吗

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。