gpt4 book ai didi

java - Java线程中的 "blocked Count"和 "Waited Count"是什么意思?

转载 作者:搜寻专家 更新时间:2023-11-01 01:46:48 26 4
gpt4 key购买 nike

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

name: Thread-6
state:BLOCKED sun.misc.Launcher$AppClassLoader@19821f ,owner: Thread-3
blocked Count:199,645 Waited Count: 2,610

199,645 和 2,610:这是一件坏事吗?

最佳答案

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

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

BLOCKED 状态和 WAITING/TIMED_WAITING 状态的区别?

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

关于java - Java线程中的 "blocked Count"和 "Waited Count"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7170235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com