Reputation: 2619
Why does a simple Java GUI application create so many threads?
Upvotes: 4
Views: 1885
Reputation: 2150
Also if you fire up jconsole (free java app in the jdk) and connect to a running java program, there is a "thread" tab that will let you look at how many threads are, along with a list of threads you can click on for more info.
Upvotes: 1
Reputation: 346300
Java uses threads for a lot of things:
Upvotes: 9
Reputation: 7507
A Simple Java Swing GUI has following Threads:
Thread [AWT-Shutdown] (Suspended)
Object.wait(long) line: not available [native method] [local variables unavailable]
Object.wait() line: 485
AWTAutoShutdown.run() line: 265
Thread.run() line: 619
Daemon Thread [AWT-Windows] (Suspended)
WToolkit.eventLoop() line: not available [native method] [local variables unavailable]
WToolkit.run() line: 295
Thread.run() line: 619
Thread [AWT-EventQueue-0] (Suspended)
Object.wait(long) line: not available [native method] [local variables unavailable]
EventQueue(Object).wait() line: 485
EventQueue.getNextEvent() line: 479
EventDispatchThread.pumpOneEventForFilters(int) line: 236
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 184
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 174
EventDispatchThread.pumpEvents(int, Conditional) line: 169
EventDispatchThread.pumpEvents(Conditional) line: 161
EventDispatchThread.run() line: 122
Thread [DestroyJavaVM] (Suspended)
Upvotes: 4
Reputation: 5181
If you attach a debugger, you can see the names and guess yourself,
but the threads are probably one or two garbage-collection threads, a few gui background threads like timers, cleanup etc.
Upvotes: 1