Java线程状态、状态转换的条件

本文详细介绍了Java中线程的五种基本状态及其转换条件,并对比了sleep、yield和wait等方法的作用与区别。

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


Java线程状态、状态转换的条件、sleep、yield()、wait()等方法的调用,及区别


Java线程的五种状态:

	1.新建状态	: new Thread()	
	2.就绪状态	:start()方法返回后,线程就处于就绪状态
	3.运行状态	: 获得了CPU执行时间
	4.阻塞状态	:线程处于等待状态
	5.死亡状态	:线程死亡


运行状态 --> 阻塞状态:

	1.IO等待
	2.sleep使当前线程进入阻塞状态,不释放对象锁
	3.等待锁资源或其他条件的发生
	4.wait导致当前线程等待。线程会释放掉它所占有的对象锁,从而使别的线程有机会抢占该锁


运行状态 --> 就绪状态

	1.调用yield()的方法,暂时让出CPU,使当前线程重新回到可执行状态,让同优先级的线程有执行的机会。
	2.(线程调度)时间片轮转


运行状态 --> 死亡状态
	
	1.run()方法执行结束,线程正常结束
	2.线程异常终止






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值