在拼命尝试任何方法来解决我的负载测试故障时,我遇到了TDA,这是一个用于 Java 的线程转储分析工具。不知何故,我不觉得我在关注它的输出。例如,在有一个 8 个线程被 BLOCKED 的监视器实例的情况下,不应该有一个线程处于 RUNNABLE 状态吗?某些线程必须获得该监视器的锁定才能将其他 8 个线程置于 BLOCKED 状态,是吗?
第二件事 - 关于 TDA 术语 - 有一个类别“线程在监视器上休眠(675 个线程休眠)”和一个称为“线程锁定监视器(806 个线程锁定)”。这两个类别都包含 WAITING、BLOCKED 或 TIMED_WAITING 的线程。我能说的唯一区别是后一类还包含处于 RUNNABLE 状态的线程。它们之间还有其他区别吗?我没有得到的是“睡在监视器上”的句法。
谢谢!