什么是;阻塞 ;计数“;及;“等待计数”;在Java线程中是什么意思?

什么是;阻塞 ;计数“;及;“等待计数”;在Java线程中是什么意思?,java,multithreading,Java,Multithreading,我使用JConsole来观察线程,它显示 name: Thread-6 state:BLOCKED sun.misc.Launcher$AppClassLoader@19821f ,owner: Thread-3 blocked Count:199,645 Waited Count: 2,610 199645和2610:这是一件坏事吗?如果您的应用程序运行不符合您的要求,那么根据这些数字,这可能是因为存在大量锁争用。等待是指它等待一个通知(Object.wait()),但阻塞意味着它试图获

我使用JConsole来观察线程,它显示

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

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

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

阻塞状态和等待/定时等待状态之间的差异


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

线程被阻止进入或重新进入的总次数
显示器。

问题:“这是件坏事吗?”标准答案:“这取决于上下文。请提供更多信息。”如果答案回答了您的问题,请将其标记为正确答案。顺便说一下,在我的测试中,时间是以秒为单位的。