/ / Una gran cantidad de subprocesos en proceso java - java, multithreading, jvm

Una gran cantidad de hilos en el proceso de java - java, multihilo, jvm

¿Por qué una aplicación Java GUI simple crea tantos hilos?

enter image description here

Respuestas

9 para la respuesta № 1

Java usa hilos para muchas cosas:

  • El hilo principal de la aplicación, por supuesto.
  • Cualquier tema que comience la aplicación (por ejemplo, SwingWorker)
  • Swing tiene un hilo de envío de Evento separado, así como algunos otros hilos de mantenimiento
  • Temporizadores, algunos de los cuales pueden iniciarse implícitamente
  • Uno o más hilos para la recolección de basura
  • Creo que normalmente hay un hilo separado preparado para ejecutar ganchos de apagado
  • Otras cosas internas de JVM

4 para la respuesta № 2

Una simple interfaz gráfica de usuario de Java Swing tiene los siguientes hilos:

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 para la respuesta № 3

Si adjunta un depurador, puede ver los nombres y adivinar,

pero los hilos son probablemente uno o dos hilos de recolección de basura, Unos pocos hilos de gui como temporizadores, limpieza, etc.


1 para la respuesta № 4

También si arrancas jconsole (aplicación java gratuita enjdk) y conéctese a un programa java en ejecución, hay una pestaña de "hilos" que le permitirá ver cuántos hilos hay, junto con una lista de hilos en los que puede hacer clic para obtener más información.