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

我用JConsole来观看一个post

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(如果我们调用wait方法的超时版本,则为TIMED_WAITING)状态。 现在,当通过notify()或notifyAll()调用同一对象通知线程时,线程的等待状态结束,线程开始尝试重新获得它在等待调用时获取的所有监视器。 有一次,可能有几个线程试图重新获得(或者第一次获得)他们的监视器。 如果多个线程尝试获取特定对象的监视器,则只有一个线程(由JVM调度程序选择)被授予监视器,所有其他线程都将进入BLOCKED状态。