Много потоков в процессе Java - PullRequest
4 голосов
/ 09 июня 2011

Почему простое Java-приложение с графическим интерфейсом создает так много потоков?

enter image description here

Ответы [ 4 ]

9 голосов
/ 09 июня 2011

Java использует потоки для многих вещей:

  • Основная тема приложения, конечно же
  • Все потоки, запускаемые приложением (например, SwingWorker)
  • У Swing есть отдельный поток рассылки событий, а также некоторые другие служебные потоки
  • Таймеры, некоторые из которых могут запускаться неявно
  • Один или несколько потоков для сборки мусора
  • Я думаю, что обычно есть отдельный поток, подготовленный для запуска ловушек отключения
  • Другие JVM-вещи
4 голосов
/ 09 июня 2011

Простой Java Swing GUI имеет следующие потоки:

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)  
1 голос
/ 29 ноября 2012

Также, если вы запустите jconsole (бесплатное java-приложение в jdk) и подключитесь к работающей java-программе, есть вкладка «поток», которая позволит вам посмотреть, сколько потоков, а также список потоков, которые выможете нажать для получения дополнительной информации.

1 голос
/ 09 июня 2011

Если вы подключите отладчик, вы сможете увидеть имена и догадаться,

но потоки, вероятно, один или два потока сборки мусора, несколько фоновых тем, таких как таймеры, очистка и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...