Сначала попробуйте сделать дамп потока, когда происходит ожидание на мониторе. Существуют различные способы сделать это, включая jstack
, jvisualvm и kill -3
. Также Netbeans может сделать это для приложения, которое он выполнил.
Имея файл дампа потока импортируйте его в tda . Хотя вы многое узнаете, просто прочитав файл в текстовом редакторе, это простое приложение группирует потоки и мониторы, позволяет просматривать потоки, включая гиперссылки и т. Д. Выглядит довольно неясно, но хорошо работает.
Если у вас возникнут трудности с чтением трассировки стека (это очень важный навык для разработчиков Java), опубликуйте здесь одну ожидающую ветку.