2010-02-19 9 views
6

con subprocesos & swing, la cola de eventos (subproceso de envío de eventos) se presenta ampliamente & discutida.Con Swing y Java, lo que se hace con el subproceso "Swing-Shell"

Sin embargo, al examinar los estados del hilo con una aplicación Swing, también hay un hilo llamado Swing-Shell. Con una breve búsqueda en Google no pude encontrar muchos detalles, en su mayoría rastreos de la pila de hilos con informes de errores, etc.

¿Alguien puede describir en breve qué hace ese hilo? O mejor aún, ¿alguien tiene algún enlace a alguna documentación

EDITAR: Estaba preguntando demasiado rápido sin suficientes detalles, lo siento. Estaba atravesando varios problemas JFileChooser y un hilo llamado "Swing-Shell" ocurre allí, teniendo algo que ver con los servicios COM de Windows para el sistema de archivos. Se puede encontrar un seguimiento de pila de muestra dentro de un problema de interbloqueo en Sun Bug #6741890. (El seguimiento de la pila de subprocesos comienza con sun.awt.shell.Win32ShellFolderManager2 $ ComInvoker $ 3.run).

Con una inspección más cercana con jconsole, me di cuenta de que el hilo no está presente allí hasta he utilizado JFileChooser (JFileChooser por ejemplo, el hilo Swing-Shell probablemente se inició por cualquiera de los componentes utilizando Win32ShellFolderManager) el hilo parece existir también después del uso de JFileChooser.

Por lo tanto, respondiendo a mí mismo, el hilo parece ser un hilo separado utilizado para servicios COM con operaciones relacionadas con archivos (¿solo con Windows?). Si alguien puede proporcionar más detalles, bienvenido =)

+1

Al hacer un volcado de hilo, ¿qué aspecto tiene el seguimiento de pila como por ese hilo? – PSpeed

+0

Y para aclarar, si inicia su aplicación de oscilación desde una línea de comando en Windows, puede presionar Ctrl-Break en esa línea de comando mientras la aplicación se está ejecutando (nota: no Ctrl-C) para obtener los rastros de la pila de cada hilo en ejecución . También hay una forma de hacer esto en Linux, pero no recuerdo de qué hablaba. – PSpeed

Respuesta

1

El número, propósito y denominación de los hilos iniciales es implementation dependent. En mi plataforma, el event dispatch thread (EDT) se llama AWT-EventQueue-0.

Addendum: El único otro reference que encontré dice, "Una aplicación Motif usa un widget de shell para comunicarse con el administrador de ventanas". ¿Estás usando una biblioteca Swing de algún tipo?

Como se sugirió anteriormente, un volcado de hilo podría estar iluminando. Las versiones recientes del perfilador de NetBeans incluyen un botón para guardar; He adjuntado una instantánea de los hilos en un típico busy demo.

image

+0

Sí, obtuve mi EDT con un nombre similar, pero este "Swing-Shell" no parece ser un "hilo inicial" (al menos en el sentido del enlace). Para mí, parece ser más como un hilo de daemon de fondo de Swing o algo así. – Touko

Cuestiones relacionadas