java.lang.management.ThreadMXBean.findMonitorDeadlockedThreads()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(110)

本文整理了Java中java.lang.management.ThreadMXBean.findMonitorDeadlockedThreads()方法的一些代码示例,展示了ThreadMXBean.findMonitorDeadlockedThreads()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ThreadMXBean.findMonitorDeadlockedThreads()方法的具体详情如下:
包路径:java.lang.management.ThreadMXBean
类名称:ThreadMXBean
方法名:findMonitorDeadlockedThreads

ThreadMXBean.findMonitorDeadlockedThreads介绍

暂无

代码示例

代码示例来源:origin: org.scala-lang/scala-compiler

@Override
public long[] findMonitorDeadlockedThreads() {
  return underlying.findMonitorDeadlockedThreads();
}

代码示例来源:origin: javamelody/javamelody

private static long[] getDeadlockedThreads(ThreadMXBean threadBean) {
  final long[] deadlockedThreads;
  if (threadBean.isSynchronizerUsageSupported()) {
    deadlockedThreads = threadBean.findDeadlockedThreads();
  } else {
    deadlockedThreads = threadBean.findMonitorDeadlockedThreads();
  }
  if (deadlockedThreads != null) {
    Arrays.sort(deadlockedThreads);
  }
  return deadlockedThreads;
}

代码示例来源:origin: apache/pulsar

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;
  }
}

代码示例来源:origin: wildfly/wildfly

public static String dumpThreads() {
  StringBuilder sb=new StringBuilder();
  ThreadMXBean bean=ManagementFactory.getThreadMXBean();
  long[] ids=bean.getAllThreadIds();
  _printThreads(bean,ids,sb);
  long[] deadlocks=bean.findDeadlockedThreads();
  if(deadlocks != null && deadlocks.length > 0) {
    sb.append("deadlocked threads:\n");
    _printThreads(bean,deadlocks,sb);
  }
  deadlocks=bean.findMonitorDeadlockedThreads();
  if(deadlocks != null && deadlocks.length > 0) {
    sb.append("monitor deadlocked threads:\n");
    _printThreads(bean,deadlocks,sb);
  }
  return sb.toString();
}

代码示例来源:origin: apache/nifi

@Override
public synchronized List<ActiveThreadInfo> getActiveThreads() {
  final long now = System.currentTimeMillis();
  final ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
  final ThreadInfo[] infos = mbean.dumpAllThreads(true, true);
  final long[] deadlockedThreadIds = mbean.findDeadlockedThreads();
  final long[] monitorDeadlockThreadIds = mbean.findMonitorDeadlockedThreads();
  final Map<Long, ThreadInfo> threadInfoMap = Stream.of(infos)
    .collect(Collectors.toMap(info -> info.getThreadId(), Function.identity(), (a, b) -> a));
  final List<ActiveThreadInfo> threadList = new ArrayList<>(activeThreads.size());
  for (final Map.Entry<Thread, ActiveTask> entry : activeThreads.entrySet()) {
    final Thread thread = entry.getKey();
    final ActiveTask activeTask = entry.getValue();
    final Long timestamp = activeTask.getStartTime();
    final long activeMillis = now - timestamp;
    final ThreadInfo threadInfo = threadInfoMap.get(thread.getId());
    final String stackTrace = ThreadUtils.createStackTrace(thread, threadInfo, deadlockedThreadIds, monitorDeadlockThreadIds, activeMillis);
    final ActiveThreadInfo activeThreadInfo = new ActiveThreadInfo(thread.getName(), stackTrace, activeMillis, activeTask.isTerminated());
    threadList.add(activeThreadInfo);
  }
  return threadList;
}

代码示例来源:origin: alibaba/jstorm

long[] deadLockMonitorTids = threadMXBean.findMonitorDeadlockedThreads();
if (deadLockMonitorTids != null) {
  writer.append(threadIds.length + " deadlocked monitor threads:");

代码示例来源:origin: patric-r/jvmtop

public long[] findDeadlockedThreads() throws IOException {
  ThreadMXBean tm = getThreadMXBean();
  if (supportsLockUsage && tm.isSynchronizerUsageSupported()) {
    return tm.findDeadlockedThreads();
  } else {
    return tm.findMonitorDeadlockedThreads();
  }
}

代码示例来源:origin: apache/nifi

final long[] monitorDeadlockThreadIds = mbean.findMonitorDeadlockedThreads();

代码示例来源:origin: linkedin/parseq

private void findDeadlock(StringBuilder out) {
 long[] tids;
 if (findDeadlocksMethodName.equals("findDeadlockedThreads") && tmbean.isSynchronizerUsageSupported()) {
  tids = tmbean.findDeadlockedThreads();
  if (tids == null) {
   return;
  }
  out.append("Deadlock found:\n");
  ThreadInfo[] infos = tmbean.getThreadInfo(tids, true, true);
  for (ThreadInfo ti : infos) {
   dumpThreadInfo(ti, out);
   dumpLockInfo(ti.getLockedSynchronizers(), out);
   out.append("\n");
  }
 } else {
  tids = tmbean.findMonitorDeadlockedThreads();
  if (tids == null) {
   return;
  }
  ThreadInfo[] infos = tmbean.getThreadInfo(tids, Integer.MAX_VALUE);
  for (ThreadInfo ti : infos) {
   // dump thread information
   dumpThreadInfo(ti, out);
  }
 }
}

代码示例来源:origin: apache/hbase

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;
 }
}

代码示例来源:origin: patric-r/jvmtop

|| threadMXBean.findMonitorDeadlockedThreads() != null;

代码示例来源:origin: org.elasticsearch/elasticsearch

public Deadlock[] findDeadlocks() {
  long deadlockedThreads[] = threadBean.findMonitorDeadlockedThreads();
  if (deadlockedThreads == null || deadlockedThreads.length == 0) {
    return NULL_RESULT;
  }
  Map<Long, ThreadInfo> threadInfoMap = createThreadInfoMap(deadlockedThreads);
  Set<LinkedHashSet<ThreadInfo>> cycles = calculateCycles(threadInfoMap);
  Set<LinkedHashSet<ThreadInfo>> chains = calculateCycleDeadlockChains(threadInfoMap, cycles);
  cycles.addAll(chains);
  return createDeadlockDescriptions(cycles);
}

代码示例来源:origin: prometheus/client_java

"jvm_threads_deadlocked_monitor",
"Cycles of JVM-threads that are in deadlock waiting to acquire object monitors",
nullSafeArrayLength(threadBean.findMonitorDeadlockedThreads())));

代码示例来源:origin: org.nuxeo.runtime/nuxeo-runtime-management

public long[] detectThreadLock() {
  long[] findMonitorDeadlockedThreads = mgmt.findMonitorDeadlockedThreads();
  if (findMonitorDeadlockedThreads == null) {
    return new long[0];
  }
  return findMonitorDeadlockedThreads;
}

代码示例来源:origin: apache/felix

protected long[] findDeadlockedThreads(ThreadMXBean threadMXBean)
{
  return threadMXBean.findMonitorDeadlockedThreads();
}

代码示例来源:origin: org.rhq/rhq-jmx-plugin

private Double getDeadLockedThreadsCount(EmsBean bean) {
  ThreadMXBean threadBean = bean.getProxy(ThreadMXBean.class);
  long[] tids = threadBean.findMonitorDeadlockedThreads();
  if (tids == null) {
    return 0.0;
  } else {
    return new Double(tids.length);
  }
}

代码示例来源:origin: com.google.code.tempus-fugit/tempus-fugit

private static List<ThreadInfo> findDeadlocks() {
  long[] result;
  if (mbean.isSynchronizerUsageSupported())
    result = mbean.findDeadlockedThreads();
  else
    result = mbean.findMonitorDeadlockedThreads();
  long[] monitorDeadlockedThreads = result;
  if (monitorDeadlockedThreads == null)
    return emptyList();
  return asList(mbean.getThreadInfo(monitorDeadlockedThreads));
}

代码示例来源:origin: net.bull.javamelody/javamelody-core

private static long[] getDeadlockedThreads(ThreadMXBean threadBean) {
  final long[] deadlockedThreads;
  if (threadBean.isSynchronizerUsageSupported()) {
    deadlockedThreads = threadBean.findDeadlockedThreads();
  } else {
    deadlockedThreads = threadBean.findMonitorDeadlockedThreads();
  }
  if (deadlockedThreads != null) {
    Arrays.sort(deadlockedThreads);
  }
  return deadlockedThreads;
}

代码示例来源:origin: net.sf.patterntesting/patterntesting-concurrent

private long[] findDeadLockThreads() {
  if (mbean.isSynchronizerUsageSupported()) {
    return mbean.findDeadlockedThreads();
  } else {
    return mbean.findMonitorDeadlockedThreads();
  }
}

代码示例来源:origin: apache/servicemix-bundles

public Deadlock[] findDeadlocks() {
  long deadlockedThreads[] = threadBean.findMonitorDeadlockedThreads();
  if (deadlockedThreads == null || deadlockedThreads.length == 0) {
    return NULL_RESULT;
  }
  Map<Long, ThreadInfo> threadInfoMap = createThreadInfoMap(deadlockedThreads);
  Set<LinkedHashSet<ThreadInfo>> cycles = calculateCycles(threadInfoMap);
  Set<LinkedHashSet<ThreadInfo>> chains = calculateCycleDeadlockChains(threadInfoMap, cycles);
  cycles.addAll(chains);
  return createDeadlockDescriptions(cycles);
}

相关文章

微信公众号

最新文章

更多