!7 p { ThreadMXBean mx = ManagementFactory.getThreadMXBean(); for (S variant : ll("", "Peak", "TotalStarted", "Daemon")) print(variant + "ThreadCount: " + call(mx, "get" + variant + "ThreadCount")); // Apparently the only way to find all non-daemon threads Map threadMap = Thread.getAllStackTraces(); for (Thread t : threadMap.keySet()) { if (t.isDaemon()) continue; print("Thread: " + t.getName()); } }