Package java.lang.management

Examples of java.lang.management.ThreadMXBean


  /**
   * Count the number of threads that have a stack frame containing
   * the given string
   */
  private static int countThreads(String search) {
    ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();

    int count = 0;
    ThreadInfo[] infos = threadBean.getThreadInfo(threadBean.getAllThreadIds(), 20);
    for (ThreadInfo info : infos) {
      if (info == null) continue;
      for (StackTraceElement elem : info.getStackTrace()) {
        if (elem.getClassName().contains(search)) {
          count++;
View Full Code Here


        future.join();

        c1.set( future.getSession() );
        ((IoSession) c1.get()).write( "start" );

        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();

        while ( !messageCount.await( 100, TimeUnit.MILLISECONDS ) ) {
            long[] threads = threadMXBean.findMonitorDeadlockedThreads();

            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 " )
View Full Code Here

    stats.add(new StatRecord(getName(), "Load average", "double",
            format.format(osBean.getSystemLoadAverage()), Level.INFO));
    stats.add(new StatRecord(getName(), "CPUs no", "int",
            osBean.getAvailableProcessors(), Level.FINEST));

    ThreadMXBean thBean = ManagementFactory.getThreadMXBean();
    stats.add(new StatRecord(getName(), "Threads count", "int",
            thBean.getThreadCount(), Level.FINEST));
    long cpuTime = 0;
    for (long thid : thBean.getAllThreadIds()) {
      cpuTime += thBean.getThreadCpuTime(thid);
    }
//    stats.add(new StatRecord(getName(), "Threads CPU time", "long", cpuTime,
//        Level.FINEST));
    double cpuUsage = (new Long(cpuTime).doubleValue() / 1000000) / new Long(
            uptime).doubleValue();
View Full Code Here

   *
   * @return an array of threads
   */
  public static Thread[] getAllThreads() {
    final ThreadGroup root = getRootThreadGroup();
    final ThreadMXBean thbean = ManagementFactory.getThreadMXBean();
    int nAlloc = thbean.getThreadCount();
    int n = 0;
    Thread[] threads = null;
    do {
      nAlloc *= 2;
      threads = new Thread[nAlloc];
View Full Code Here

   * Get a list of all thread info objects. Since there is always at least one thread running, there is always at least one thread info object. This method never returns a null or empty array.
   *
   * @return an array of thread infos
   */
  public static ThreadInfo[] getAllThreadInfos() {
    final ThreadMXBean thbean = ManagementFactory.getThreadMXBean();
    final long[] ids = thbean.getAllThreadIds();

    // Get thread info with lock info, when available.
    ThreadInfo[] infos;
    if (!thbean.isObjectMonitorUsageSupported() || !thbean.isSynchronizerUsageSupported())
      infos = thbean.getThreadInfo(ids);
    else
      infos = thbean.getThreadInfo(ids, true, true);

    // Clean nulls from array if threads have died.
    final ThreadInfo[] notNulls = new ThreadInfo[infos.length];
    int nNotNulls = 0;
    for (ThreadInfo info : infos)
View Full Code Here

    }

    /** thread CPU time in milliseconds. */
    private long getCpuTimeInMillis ()
    {
        ThreadMXBean bean = ManagementFactory.getThreadMXBean();
        return bean.isCurrentThreadCpuTimeSupported() ? bean.getCurrentThreadCpuTime()/1000000: 0L;
    }
View Full Code Here

        future.await();

        c1.set(future.getSession());
        c1.get().write("start");

        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();

        while (!messageCount.await(100, TimeUnit.MILLISECONDS)) {
            long[] threads = threadMXBean.findMonitorDeadlockedThreads();

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

                for (ThreadInfo info : infos) {
                    sb.append(info.getThreadName())
                            .append(" blocked on ")
                            .append(info.getLockName())
View Full Code Here

    /*
     * Test method for
     * 'java.lang.management.ManagementFactory.getThreadMXBean()'
     */
    public void testGetThreadMXBean() {
        ThreadMXBean mb = ManagementFactory.getThreadMXBean();
        assertNotNull(mb);

        // Verify that there is only instance of this bean
        ThreadMXBean mb2 = ManagementFactory.getThreadMXBean();
        assertNotNull(mb2);
        assertSame(mb, mb2);
    }
View Full Code Here

        // Named MXBean does not implement the supplied MXBean interface
        List<GarbageCollectorMXBean> allGCBeans = ManagementFactory
                .getGarbageCollectorMXBeans();
        for (GarbageCollectorMXBean bean : allGCBeans) {
            try {
                ThreadMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(
                        ManagementFactory.getPlatformMBeanServer(), bean
                                .getName(), ThreadMXBean.class);
                fail("should have thrown IllegalArgumentException");
            } catch (IllegalArgumentException ignore) {
            }
        }// end for

        // Named MXBean does not implement the supplied MXBean interface
        List<MemoryManagerMXBean> allMMBeans = ManagementFactory
                .getMemoryManagerMXBeans();
        for (MemoryManagerMXBean bean : allMMBeans) {
            try {
                ThreadMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(
                        ManagementFactory.getPlatformMBeanServer(), bean
                                .getName(), ThreadMXBean.class);
                fail("should have thrown IllegalArgumentException");
            } catch (IllegalArgumentException ignore) {
            }
View Full Code Here

     * Test method for
     * 'java.lang.management.ManagementFactory.newPlatformMXBeanProxy(MBeanServerConnection,
     * String, Class<T>) <T>'
     */
    public void testNewPlatformMXBeanProxy_ThreadMXBean() throws Exception {
        ThreadMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(
                ManagementFactory.getPlatformMBeanServer(),
                "java.lang:type=Threading", ThreadMXBean.class);
        assertNotNull(proxy);
        ThreadMXBean mb = ManagementFactory.getThreadMXBean();
        // Not an exhaustive check...
        assertEquals(mb.isCurrentThreadCpuTimeSupported(), proxy
                .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());
View Full Code Here

TOP

Related Classes of java.lang.management.ThreadMXBean

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.