/ / Veľa vlákien v procese Java - java, multithreading, jvm

Veľa vlákien v java procese - java, multithreading, jvm

Prečo jednoduchá aplikácia Java GUI vytvára toľko vlákien?

tu zadajte popis obrázku

odpovede:

9 pre odpoveď č. 1

Java používa vlákna pre veľa vecí:

  • Hlavné vlákno aplikácie, samozrejme
  • Všetky vlákna, z ktorých sa aplikácia spustí (napr. SwingWorker)
  • Swing má samostatné vlákno na odosielanie udalostí, ako aj niektoré ďalšie vlákna na správu domácnosti
  • Časovače, z ktorých niektoré môžu začať implicitne
  • Jedno alebo viac vlákien na odvoz odpadu
  • Myslím, že zvyčajne existuje samostatné vlákno pripravené na spustenie vypínacích hákov
  • Ostatné interné veci JVM

4 pre odpoveď č. 2

Jednoduché grafické rozhranie Java Swing má nasledujúce vlákna:

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 pre odpoveď č. 3

Ak pripojíte debugger, uvidíte mená a hádajte sami,

ale vlákna sú pravdepodobne jedno alebo dve vlákna na zber odpadu, niekoľko vlákien gui na pozadí, ako sú časovače, čistenie atď.


1 pre odpoveď č. 4

Tiež, ak spustíte jconsole (bezplatná java aplikácia v systéme Windows)jdk) a pripojte sa k spustenému programu Java, existuje karta „vlákno“, ktorá vám umožní pozrieť sa na počet vlákien, spolu so zoznamom vlákien, na ktoré môžete kliknúť a získať ďalšie informácie.