2011-09-26 25 views
6

Tengo un problema con un servidor Tomcat que no se puede cerrar correctamente. Me he tomado un vertedero de hilo después de I emitió el comando de apagado, y se ve así:¿Qué son esos hilos java que comienzan con "pool"?

http://pastebin.com/7SW4wZN9

El hilo que creo que es la "sospecha" que no permite que la máquina virtual se apague es el que llamado "pool-4-thread-1". El resto de ellos son subprocesos daemon o subprocesos internos de VM. Al tratar de averiguar para qué sirve este hilo, noté que hay otros programas java que crean hilos con nombres similares (por ejemplo, JVisualVM crea dichos hilos).

Así que me pregunto si alguien más sabe qué es este hilo y cómo se puede crear.

+0

¿Qué significa "incapaz de shudtown con gracia"? – Bozho

+0

Significa que la VM no termina después de ejecutar shutdown.sh. Necesita una señal de muerte en el nivel del sistema operativo. – mavroprovato

Respuesta

12

Probablemente estos subprocesos sean creados por un ExecutorService que usted creó en su código en alguna parte (directa o indirectamente a través de una biblioteca) y que necesita ser apagado (por ejemplo en ServletContextListener).

+0

yup, cierto. +1 .. – Bozho

+0

Tiene razón, he creado una clase de prueba con un ExecutorService y se creó un subproceso con este nombre. ¿Alguna idea sobre cómo puedo ... cazar este ExecutorService y matarlo? – mavroprovato

+0

Difícil, ya que están usando el nombre predeterminado, que no lo delata. Podrías crear volcados de rastreo de pila mientras se ejecuta la aplicación, tal vez puedas ver a uno de ellos haciendo un trabajo real. Eso debería revelar algunos nombres de clase. ¿Qué tipo de bibliotecas estás usando? ¿Algo que pueda funcionar con hilos de fondo? – Thilo

Cuestiones relacionadas