首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java线程中的“阻塞计数”和“等待计数”是什么意思?

Java线程中的“阻塞计数”和“等待计数”是什么意思?
EN

Stack Overflow用户
提问于 2011-08-24 11:53:07
回答 2查看 14.9K关注 0票数 4

我使用JConsole查看一个线程,它显示了

代码语言:javascript
复制
name: Thread-6
state:BLOCKED  sun.misc.Launcher$AppClassLoader@19821f ,owner: Thread-3
blocked Count:199,645  Waited Count: 2,610

199645和2610:这是一件坏事吗?

EN

回答 2

Stack Overflow用户

发布于 2012-04-25 22:46:56

如果您的应用程序没有运行满足您的需求,根据这些数字,这可能是因为存在大量的锁争用。等待是指它等待通知(Object.wait()),但被阻塞意味着它试图获取锁,但无法获取,因为另一个线程持有该锁。

来自http://geekexplains.blogspot.ca/2008/07/threadstate-in-java-blocked-vs-waiting.html

阻塞状态和等待/ TIMED_WAITING状态之间的区别?

当一个线程调用Object.wait方法时,它会释放所有获取的监视器,并进入wait (如果我们调用wait方法的超时版本,则为TIMED_WAITING )状态。现在,当通过对同一对象的notify()或notifyAll()调用通知线程时,线程的等待状态结束,线程开始尝试重新获得它在等待调用时获得的所有监视器。在同一时间,可能有几个线程试图重新获得(或者可能是第一次获得)它们的监视器。如果多个线程试图获取特定对象的监视器,则只有一个线程(由JVM调度器选择)被授予监视器,而所有其他线程都进入阻塞状态。

票数 8
EN

Stack Overflow用户

发布于 2020-08-21 19:39:48

线程阻塞进入或重新进入监视器的总次数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7170235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档