调试Java同步

Eclipse调试环境中是否有任何机制可以查看持有的同步锁和进程等待的状态?

您可以在Eclipse的调试器中显示对象监视器的状态。 你可以在这里找到简短明了的教程 。 对于每个线程,Eclipse可以向您显示线程拥有的监视器及其正在等待的监视器。

正如您在此处所建议的那样(如果运行Sun JVM),请执行以下步骤:

  1. 启动jconsole或jvisualvm(都存在于JDK安装的bin目录中,
  2. 附加到您怀疑已锁定的进程
  3. 转到“线程”窗格。 有一个“检测死锁”按钮