Я очень новый в мире Java. Недавно я столкнулся с проблемой, из-за которой зависание java-приложения. Когда я создавал дамп потока, я обнаружил, что этот конкретный поток создает сотни тысяч заблокированных записей.
"Thread-1" #12 daemon prio=5 os_prio=0 tid=0x0000000018392800 nid=0x2de0 waiting on condition [0x0000000018ece000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000a1da8db8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
at com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:108)
Locked ownable synchronizers:
- None
& после того, как приложение иногда зависает, а поток меняется на -
"Thread-1" #12 daemon prio=5 os_prio=0 tid=0x0000000018392800 nid=0x2de0 in Object.wait() [0x0000000018ece000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:126)
- locked <0x00000000a1d65960> (a java.lang.StringBuilder)
Locked ownable synchronizers:
- None
Поскольку это скомпилированный jar-файл, и я не знаю всех аспектов java для поиска этой конкретной темы. Можно ли сделать внешний файл класса, чтобы остановить или убить этот поток выполнения, чтобы остановить зависание приложения.