See JConsole which comes with Java5 and later. It can connect to a running program and show you thread information - and a lot more. You can use the same APIs that it uses if you want that info in your own programs.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Ideally only one thread should be in running state if its a single processor :-) but if you want to know how many threads (for which start method has been called) are active you can get it by Thread.getActiveCount()
Chop your own wood, and it will warm you twice. - Henry Ford
I love the ranch because I always see something new. I hadn't read up on activeCount() before. It is for the current thread group only so you may have to walk up the tree of ThreadGroup.getParent to "main" to get all threads.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi