Package java.lang.management

Examples of java.lang.management.ThreadInfo


        return deadlockChain;
    }


    private ImmutableMap<Long, ThreadInfo> createThreadInfoMap(long threadIds[]) {
        ThreadInfo threadInfos[] = threadBean.getThreadInfo(threadIds);
        ImmutableMap.Builder<Long, ThreadInfo> threadInfoMap = ImmutableMap.builder();
        for (ThreadInfo threadInfo : threadInfos) {
            threadInfoMap.put(threadInfo.getThreadId(), threadInfo);
        }
        return threadInfoMap.build();
View Full Code Here


            this.members = members;

            ImmutableSet.Builder<Long> builder = ImmutableSet.builder();
            StringBuilder sb = new StringBuilder();
            for (int x = 0; x < members.length; x++) {
                ThreadInfo ti = members[x];
                sb.append(ti.getThreadName());
                if (x < members.length)
                    sb.append(" > ");
                if (x == members.length - 1)
                    sb.append(ti.getLockOwnerName());
                builder.add(ti.getThreadId());
            }
            this.description = sb.toString();
            this.memberIds = builder.build();
        }
View Full Code Here

    boolean contention = threadBean.isThreadContentionMonitoringEnabled();
    long[] threadIds = threadBean.getAllThreadIds();
    stream.println("Process Thread Dump: Tajo Worker");
    stream.println(threadIds.length + " active threads");
    for (long tid : threadIds) {
      ThreadInfo info = threadBean.getThreadInfo(tid, STACK_DEPTH);
      if (info == null) {
        stream.println("  Inactive");
        continue;
      }
      stream.println("Thread " + getThreadTaskName(info.getThreadId(), info.getThreadName()) + ":");
      Thread.State state = info.getThreadState();
      stream.println("  State: " + state + ", Blocked count: " + info.getBlockedCount() +
          ", Waited count: " + info.getWaitedCount());
      if (contention) {
        stream.println("  Blocked time: " + info.getBlockedTime() + ", Waited time: " + info.getWaitedTime());
      }
      if (state == Thread.State.WAITING) {
        stream.println("  Waiting on " + info.getLockName());
      } else if (state == Thread.State.BLOCKED) {
        stream.println("  Blocked on " + info.getLockName() +
            ", Blocked by " + getThreadTaskName(info.getLockOwnerId(), info.getLockOwnerName()));
      }
      stream.println("  Stack:");
      for (StackTraceElement frame : info.getStackTrace()) {
        stream.println("    " + frame.toString());
      }
      stream.println("");
    }
  }
View Full Code Here

    boolean contention = threadBean.isThreadContentionMonitoringEnabled();
    long[] threadIds = threadBean.getAllThreadIds();
    stream.println("Process Thread Dump: Tajo Worker");
    stream.println(threadIds.length + " active threads");
    for (long tid : threadIds) {
      ThreadInfo info = threadBean.getThreadInfo(tid, STACK_DEPTH);
      if (info == null) {
        stream.println("  Inactive");
        continue;
      }
      stream.println("Thread " + getThreadTaskName(info.getThreadId(), info.getThreadName()) + ":");
      Thread.State state = info.getThreadState();
      stream.println("  State: " + state + ",  Blocked count: " + info.getBlockedCount() +
          ",  Waited count: " + info.getWaitedCount());
      if (contention) {
        stream.println("  Blocked time: " + info.getBlockedTime() + ",  Waited time: " + info.getWaitedTime());
      }
      if (state == Thread.State.WAITING) {
        stream.println("  Waiting on " + info.getLockName());
      } else if (state == Thread.State.BLOCKED) {
        stream.println("  Blocked on " + info.getLockName() +
            ", Blocked by " + getThreadTaskName(info.getLockOwnerId(), info.getLockOwnerName()));
      }
      stream.println("  Stack:");
      for (StackTraceElement frame : info.getStackTrace()) {
        stream.println("    " + frame.toString());
      }
      stream.println("");
    }
  }
View Full Code Here

            if ( null != threads ) {
                StringBuffer sb = new StringBuffer( 256 );
                ThreadInfo[] infos = threadMXBean.getThreadInfo( threads, Integer.MAX_VALUE );

                for (int i = 0; i < infos.length; i ++) {
                    ThreadInfo info = infos[i];
                    sb.append( info.getThreadName() )
                        .append( " blocked on " )
                        .append( info.getLockName() )
                        .append( " owned by " )
                        .append( info.getLockOwnerName() )
                        .append( "\n" );
                }

                for (int i = 0; i < infos.length; i ++) {
                    ThreadInfo info = infos[i];
                    sb.append( "\nStack for " ).append( info.getThreadName() ).append( "\n" );
                    StackTraceElement[] stackTrace = info.getStackTrace();
                    for (int j = 0; j < stackTrace.length; j ++) {
                        sb.append( "\t" ).append( stackTrace[j] ).append( "\n" );
                    }
                }
View Full Code Here

    if (object == null)
      throw new NullPointerException("Null object");
    final long identity = System.identityHashCode(object);

    final Thread[] allThreads = getAllThreads();
    ThreadInfo info = null;
    MonitorInfo[] monitors = null;
    for (Thread thread : allThreads) {
      info = getThreadInfo(thread.getId());
      if (info == null)
        continue;
      monitors = info.getLockedMonitors();
      for (MonitorInfo monitor : monitors)
        if (identity == monitor.getIdentityHashCode())
          return thread;
    }
    return null;
View Full Code Here

   * @return the blocking thread, or null if there is none
   * @throws NullPointerException
   *           if the blocked thread is null
   */
  public static Thread getBlockingThread(final Thread blockedThread) {
    final ThreadInfo info = getThreadInfo(blockedThread);
    if (info == null)
      return null;
    final long id = info.getLockOwnerId();
    if (id == -1)
      return null;
    return getThread(id);
  }
View Full Code Here

                mb.setThreadContentionMonitoringEnabled(false);
                Thread.yield();
            }// end while

            // Check that a ThreadInfo returns -1 where expected.
            ThreadInfo info = mb.getThreadInfo(Thread.currentThread().getId());
            assertEquals(-1, info.getBlockedTime());
            assertEquals(-1, info.getWaitedTime());

            // re-enable tcm
            while (!mb.isThreadContentionMonitoringEnabled()) {
                mb.setThreadContentionMonitoringEnabled(true);
                Thread.yield();
            }// end while

            // Check that waited time and blocked time are now no longer
            // set to -1.
            ThreadInfo info2 = mb.getThreadInfo(Thread.currentThread().getId());
            assertTrue(info2.getBlockedTime() > -1);
            assertTrue(info2.getWaitedTime() > -1);
        } else {
            try {
                mb.isThreadContentionMonitoringEnabled();
                fail("Should have thrown UnsupportedOperationException!");
            } catch (UnsupportedOperationException ignore) {
View Full Code Here

                .isCurrentThreadCpuTimeSupported());
        assertEquals(mb.isThreadContentionMonitoringSupported(), proxy
                .isThreadContentionMonitoringSupported());
        assertEquals(mb.isThreadCpuTimeSupported(), proxy
                .isThreadCpuTimeSupported());
        ThreadInfo info1 = mb.getThreadInfo(Thread.currentThread().getId());
        ThreadInfo info2 = proxy.getThreadInfo(Thread.currentThread().getId());
        // RI does not appear to override equals() for ThreadInfo so we take
        // the scenic route to check for equality...
        assertEquals(info1.getThreadId(), info2.getThreadId());
        assertEquals(info1.getBlockedCount(), info2.getBlockedCount());
        assertEquals(info1.getBlockedTime(), info2.getBlockedTime());
        assertEquals(info1.getThreadName(), info2.getThreadName());
        assertEquals(info1.getWaitedCount(), info2.getWaitedCount());
        assertEquals(info1.getLockName(), info2.getLockName());
    }
View Full Code Here

            sb.append(sm.getString("no.deadlock"));
        }
        else {
            sb.append(sm.getString("deadlocks.found"));
            for (final long dt : dts) {
                final ThreadInfo ti = tmx.getThreadInfo(dt);
                sb.append(this.dumpThread(ti));
            }
        }
        return ( sb.toString() );
    }
View Full Code Here

TOP

Related Classes of java.lang.management.ThreadInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.