Отладка синхронизации Java

Есть ли какой-либо механизм в среде отладки Eclipse для просмотра состояния блокировок синхронизации и ожидающих процессов?

Ответ 1

Вы можете показать состояние мониторов объектов в отладчике Eclipse. Вы можете найти короткий, понятный учебник здесь. Для каждого потока Eclipse может показать вам мониторы, которыми владеет нить, и те, которые он ожидает.

Ответ 2

Как было предложено здесь, вы можете (если вы запустите Sun JVM) выполнить следующие шаги:

  • запустить jconsole или jvisualvm (оба присутствуют в каталоге bin вашей JDK-установки,
  • присоединяется к процессу, который, как вы подозреваете, заблокирован
  • перейдите в панель "Темы". Существует кнопка "Detect Deadlock".