2011-09-26 14 views
6

Ho un problema con un server Tomcat che non è in grado di arrestare correttamente. Ho preso una discarica filo dopo aver dato il comando di arresto, e sembra che questo:Cosa sono quei thread java che iniziano con "pool"?

http://pastebin.com/7SW4wZN9

Il filo che credo sia il "sospetto" che non consente la VM di chiudere è quella denominato "pool-4-thread-1". Il resto di essi sono o thread daemon o thread VM interni. Durante il tentativo di scoprire a cosa serve questo thread, ho notato che esistono altri programmi Java che creano thread con nomi simili (ad esempio, JVisualVM crea tali thread).

quindi mi chiedo se qualcun altro sa cosa questa discussione è e come può essere creato.

+0

cosa significa "incapace di shudtown grazia"? – Bozho

+0

Significa che la VM non termina dopo l'esecuzione di shutdown.sh. Ha bisogno di un segnale di uccisione a livello di sistema operativo. – mavroprovato

risposta

12

Questi thread sono probabilmente creati da un ExecutorService creato nel codice da qualche parte (direttamente o indirettamente tramite una libreria) e che deve essere arrestato (ad esempio in un ServletContextListener).

+0

sì, vero. +1 .. – Bozho

+0

Hai ragione, ho creato una classe di test con un ExecutorService e una discussione con questo nome è stata creata. Qualche idea su come posso ... cacciare questo ExecutorService e ucciderlo? – mavroprovato

+0

Difficile, dal momento che stanno usando il nome predefinito, che non lo fornisce. È possibile eseguire i dump di traccia stack mentre l'app è in esecuzione, forse è possibile rilevare uno di questi lavori effettivi. Questo dovrebbe dare alcuni nomi di classe. Che tipo di librerie stai usando? Qualcosa che potrebbe funzionare con thread in background? – Thilo

Problemi correlati