25.请描述线程的生命周期

本文详细介绍了线程的六种状态:新建(new)、可运行(runnable)、阻塞(blocked)、等待(waiting)、定时等待(timed waiting)及终止(terminated)。并解释了这些状态间的转换过程,如进入synchronized同步代码块未获取锁时的状态变化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程共有6种状态:

在这里插入图片描述

new,runnable,blocked,waiting,timed waiting,terminated

1,当进入synchronized同步代码块或同步方法时,且没有获取到锁,线程就进入了blocked状态,直到锁被释放,重新进入runnable状态

2,当线程调用wait()或者join时,线程都会进入到waiting状态,当调用notify或notifyAll时,或者join的线程执行结束后,会进入runnable状态

3,当线程调用sleep(time),或者wait(time)时,进入timed waiting状态,

当休眠时间结束后,或者调用notify或notifyAll时会重新runnable状态。

4,程序执行结束,线程进入terminated状态

blocked,waiting,timed waiting 我们都称为阻塞状态

就绪状态和运行状态,都表现为runnable状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值