Java Code Examples for java.lang.management.ThreadMXBean#findMonitorDeadlockedThreads()
The following examples show how to use
java.lang.management.ThreadMXBean#findMonitorDeadlockedThreads() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ThreadDeadlockDumpProvider.java From TNT4J with Apache License 2.0 | 6 votes |
@Override public DumpCollection getDump() { Dump dump = new Dump("JavaDeadlockedThreads", this); ThreadMXBean tmbean = ManagementFactory.getThreadMXBean(); long[] dead = tmbean.findMonitorDeadlockedThreads(); dump.add("java.thread.deadlock.count", dead == null ? 0 : dead.length); if (dead != null) { ThreadInfo[] tinfos = tmbean.getThreadInfo(dead, Integer.MAX_VALUE); for (ThreadInfo ti : tinfos) { dump.add(ti.getThreadName() + "-" + ti.getThreadId(), ti); } } return dump; }
Example 2
Source File: ThreadDumpUtil.java From pulsar with Apache License 2.0 | 6 votes |
static String buildDeadlockInfo() { ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); long[] threadIds = threadBean.findMonitorDeadlockedThreads(); if (threadIds != null && threadIds.length > 0) { StringWriter stringWriter = new StringWriter(); PrintWriter out = new PrintWriter(stringWriter); ThreadInfo[] infos = threadBean.getThreadInfo(threadIds, true, true); for (ThreadInfo ti : infos) { printThreadInfo(ti, out); printLockInfo(ti.getLockedSynchronizers(), out); out.println(); } out.close(); return stringWriter.toString(); } else { return null; } }
Example 3
Source File: TimedOutTestsListener.java From distributedlog with Apache License 2.0 | 6 votes |
static String buildDeadlockInfo() { ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); long[] threadIds = threadBean.findMonitorDeadlockedThreads(); if (threadIds != null && threadIds.length > 0) { StringWriter stringWriter = new StringWriter(); PrintWriter out = new PrintWriter(stringWriter); ThreadInfo[] infos = threadBean.getThreadInfo(threadIds, true, true); for (ThreadInfo ti : infos) { printThreadInfo(ti, out); printLockInfo(ti.getLockedSynchronizers(), out); out.println(); } out.close(); return stringWriter.toString(); } else { return null; } }
Example 4
Source File: TimedOutTestsListener.java From big-c with Apache License 2.0 | 6 votes |
static String buildDeadlockInfo() { ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); long[] threadIds = threadBean.findMonitorDeadlockedThreads(); if (threadIds != null && threadIds.length > 0) { StringWriter stringWriter = new StringWriter(); PrintWriter out = new PrintWriter(stringWriter); ThreadInfo[] infos = threadBean.getThreadInfo(threadIds, true, true); for (ThreadInfo ti : infos) { printThreadInfo(ti, out); printLockInfo(ti.getLockedSynchronizers(), out); out.println(); } out.close(); return stringWriter.toString(); } else { return null; } }
Example 5
Source File: TimedOutTestsListener.java From hbase with Apache License 2.0 | 6 votes |
static String buildDeadlockInfo() { ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); long[] threadIds = threadBean.findMonitorDeadlockedThreads(); if (threadIds != null && threadIds.length > 0) { StringWriter stringWriter = new StringWriter(); PrintWriter out = new PrintWriter(stringWriter); ThreadInfo[] infos = threadBean.getThreadInfo(threadIds, true, true); for (ThreadInfo ti : infos) { printThreadInfo(ti, out); printLockInfo(ti.getLockedSynchronizers(), out); out.println(); } out.close(); return stringWriter.toString(); } else { return null; } }
Example 6
Source File: JVMMonitor.java From fqueue with Apache License 2.0 | 5 votes |
/** * 获取死锁数 * * @return 死锁数 */ public static int getDeadLockCount() { ThreadMXBean th = (ThreadMXBean) ManagementFactory.getThreadMXBean(); long[] deadLockIds = th.findMonitorDeadlockedThreads(); if (deadLockIds == null) { return 0; } else { return deadLockIds.length; } }
Example 7
Source File: JVMMonitor.java From fqueue with Apache License 2.0 | 5 votes |
/** * 获取死锁数 * * @return 死锁数 */ public static int getDeadLockCount() { ThreadMXBean th = (ThreadMXBean) ManagementFactory.getThreadMXBean(); long[] deadLockIds = th.findMonitorDeadlockedThreads(); if (deadLockIds == null) { return 0; } else { return deadLockIds.length; } }
Example 8
Source File: ProxyClient.java From jmxmon with Apache License 2.0 | 5 votes |
public long[] findDeadlockedThreads() throws IOException { ThreadMXBean tm = getThreadMXBean(); if (supportsLockUsage && tm.isSynchronizerUsageSupported()) { return tm.findDeadlockedThreads(); } else { return tm.findMonitorDeadlockedThreads(); } }
Example 9
Source File: AnnotationTypeDeadlockTest.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 10
Source File: AnnotationTypeDeadlockTest.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 11
Source File: AnnotationTypeDeadlockTest.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 12
Source File: AnnotationTypeDeadlockTest.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 13
Source File: AnnotationTypeDeadlockTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 14
Source File: AnnotationTypeDeadlockTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 15
Source File: AnnotationTypeDeadlockTest.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 16
Source File: ProxyClient.java From jvmtop with GNU General Public License v2.0 | 5 votes |
public long[] findDeadlockedThreads() throws IOException { ThreadMXBean tm = getThreadMXBean(); if (supportsLockUsage && tm.isSynchronizerUsageSupported()) { return tm.findDeadlockedThreads(); } else { return tm.findMonitorDeadlockedThreads(); } }
Example 17
Source File: AnnotationTypeDeadlockTest.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 18
Source File: AnnotationTypeDeadlockTest.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 19
Source File: AnnotationTypeDeadlockTest.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }
Example 20
Source File: AnnotationTypeDeadlockTest.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { CountDownLatch prepareLatch = new CountDownLatch(2); AtomicInteger goLatch = new AtomicInteger(1); Task taskA = new Task(prepareLatch, goLatch, AnnA.class); Task taskB = new Task(prepareLatch, goLatch, AnnB.class); taskA.start(); taskB.start(); // wait until both threads start-up prepareLatch.await(); // let them go goLatch.set(0); // obtain ThreadMXBean ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); // wait for threads to finish or dead-lock while (taskA.isAlive() || taskB.isAlive()) { // attempt to join threads taskA.join(500L); taskB.join(500L); // detect dead-lock long[] deadlockedIds = threadBean.findMonitorDeadlockedThreads(); if (deadlockedIds != null && deadlockedIds.length > 0) { StringBuilder sb = new StringBuilder("deadlock detected:\n\n"); for (ThreadInfo ti : threadBean.getThreadInfo(deadlockedIds, Integer.MAX_VALUE)) { sb.append(ti); } throw new IllegalStateException(sb.toString()); } } }