java线程的几种状态

Java线程在其生命周期中可能会有以下几种状态:

java线程的几种状态
(图片来源网络,侵删)

1、新建(New)

当创建一个Thread类的实例时,线程就进入了新建状态,此时,线程还没有开始执行,它仅仅是一个空的线程对象。

Thread thread = new Thread();

2、就绪(Runnable)

当调用线程的start()方法后,线程就进入了就绪状态,此时,线程已经具备了运行的条件,等待系统分配CPU时间片,以便执行线程的run()方法。

thread.start();

3、运行(Running)

当线程获得CPU时间片后,就开始执行run()方法,此时线程处于运行状态,在运行状态的线程可以被抢占,也可以主动放弃CPU时间片,让其他线程执行。

4、阻塞(Blocked)

线程在运行过程中,可能会因为某些原因进入阻塞状态,常见的阻塞原因有:等待I/O操作完成、等待获取锁资源、等待其他线程唤醒等,当阻塞条件解除后,线程会重新进入就绪状态。

5、等待(Waiting)

线程在运行过程中,可能会进入等待状态,等待状态的线程需要等待其他线程执行特定操作(如通知或中断)后才能继续执行,常见的等待方法有:Object.wait()、Thread.join()、LockSupport.park()等。

6、计时等待(Timed Waiting)

线程在运行过程中,可能会进入计时等待状态,计时等待状态的线程需要等待指定的时间后才能继续执行,常见的计时等待方法有:Thread.sleep()、Object.wait(long timeout)、Thread.join(long millis)等。

7、终止(Terminated)

线程执行完run()方法后,或者因为异常而终止,线程就进入了终止状态,此时线程的生命周期结束,不再具备运行条件。

状态 描述
新建 线程对象已创建,但尚未启动
就绪 线程已具备运行条件,等待系统分配CPU时间片
运行 线程正在执行run()方法
阻塞 线程因等待I/O操作、获取锁资源等原因暂时停止运行
等待 线程需要等待其他线程执行特定操作后才能继续执行
计时等待 线程需要等待指定时间后才能继续执行
终止 线程执行完毕或因异常而终止

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/656054.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-27 01:08
下一篇 2024-05-27 01:10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入