Вы можете только сказать, содержит ли текущий поток нормальную блокировку (Thread.holdsLock(Object)
). Вы не можете получить ссылку на поток с блокировкой без собственного кода.
Однако, если вы делаете что-то сложное с потоками, вы, вероятно, захотите ознакомиться с пакетами java.util.concurrent. ReentrantLock
позволяет вам получить его владельца (но это защищенный метод, поэтому вам придется расширить его). В зависимости от вашего приложения, вполне возможно, что при использовании пакетов параллелизма вы обнаружите, что вам все равно не нужно получать владельца замка.
Существуют непрограммные методы поиска владельцев блокировок, например, сигнализация JVM о выдаче дампа потока в stderr, которые полезны для определения причины тупиков.