view src/org/dancres/blitz/stats/ThreadStat.java @ 34:6f68e94c1fb8 default tip

Add CondensedStats monitoring utility, equivalent to vmstat
author Dominic Cleal <dominic-cleal@cdo2.com>
date Thu, 05 Aug 2010 11:07:25 +0100
parents 3dc0c5604566
children
line wrap: on
line source

package org.dancres.blitz.stats;

public class ThreadStat implements Stat, StatGenerator {
    private long theId = StatGenerator.UNSET_ID;
    private int theThreadCount = 0;

    ThreadStat() {
    }

    ThreadStat(long anId, int aThreadCount) {
        theId = anId;
        theThreadCount = aThreadCount;
    }

    public void setId(long anId) {
        theId = anId;
    }

    public long getId() {
        return theId;
    }

    public synchronized Stat generate() {
        ThreadGroup myGroup = Thread.currentThread().getThreadGroup();

        int myActiveCount = myGroup.activeCount();

        while ((!myGroup.getName().equals("main")) &&
            (myGroup = myGroup.getParent()) != null) {
            myActiveCount += myGroup.activeCount();
        }

        return new ThreadStat(theId, myActiveCount);
    }

    public int getThreadCount() {
        return theThreadCount;
    }

    public String toString() {
        return "Thread count: " + theThreadCount;
    }
}