Мне нужно отследить все потоки, которые заблокировали один из моих объектов.
Можно ли подключиться к механизму неявной синхронизации в java и регистрировать идентификатор потока (или другую информацию) всякий раз, когда какой-либо поток получает блокировку?
Насколько мне известно, не существует метода, который я мог бы просто переопределить. В API отражения тоже ничего полезного не нашел. Я не нашел какого-либо внешнего инструмента, который мог бы отслеживать блокировки (VisualVM отслеживает только использование процессора и памяти, FindBugs использует статический анализ, javapathfinder, похоже, может тестировать только небольшие приложения, отличные от awt).
Изменить: кажется, что есть очень похожий вопрос Как в Java регистрировать сообщение каждый раз, когда монитор данного объекта входит или выходит из него?