Java线程 Block和Waiting的异同

本文探讨了Java线程中的Blocked与Waiting状态的区别与联系。Blocked状态下的线程试图获取锁但未成功;而Waiting状态下的线程正在等待其他线程的通知。Waiting状态的线程在接收到通知后会进入Runnable状态,但仍需获取锁才能继续执行。

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

Java线程 Block和Waiting的异同

可以参考文章

http://stackoverflow.com/questions/2534147/java-thread-wait-blocked

我的理解

1 相同点

线程都不是运行状态

2 不同点

waiting是在资源的等待队列中,等待被notify,notify后将会到Runable状态,

但是要想运行还得过monitor这关。

参考

In other words, both BLOCKED and WAITING are status of inactive threads, but a WAITING thread cannot be RUNNABLE without going to BLOCKED first. WAITING threads "don't want" to become active, whereas BLOCKED threads "want" to, but can't, because it isn't their turn.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值