9

In discarica thread dell'applicazione posso vedere di thread con cinque fili come segue:hidden.edu.emory.mathcs.backport *

"pool-1-thread-5" prio=10 tid=0x000000000101a000 nid=0xe1f in Object.wait() [0x00007f3c66086000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock) 
    at java.lang.Object.wait(Object.java:503) 
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:316) 
    - locked <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock) 
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:994) 
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1054) 
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) 
    at java.lang.Thread.run(Thread.java:722) 

Ma non usare nulla di tutto questo direttamente e non vedere nulla come questo nelle dipendenze.

Che cos'è questo (hidden.edu.emory.mathcs.backport) e perché utilizzato (applicazione in esecuzione su jdk 7)? Posso rilevare quale parte dell'applicazione l'ha avviata?

+0

Se è possibile eseguire il debug di questa applicazione durante l'avvio, mettere un punto di interruzione 'hidden.edu.emory.mathcs.backport.java. costruttore di util.concurrent.ThreadPoolExecutor' e vedere chi lo chiama. Se puoi eseguire il debug solo durante l'esecuzione, interrompi i metodi 'execute' e' submit'. La natura del codice chiamante ti spiegherà perché viene utilizzata. –

risposta

13

Questo albero pacchetto edu.emory.mathcs.backport appartiene a backport-util-concurrent che è un backport di java.util.concurrent per le versioni precedenti di Java. Il prefisso hidden potrebbe essere stato aggiunto da strumenti come maven-shade-plugin.

Se stai usando Maven è possibile cercare questa dipendenza con:

mvn dependency:tree -Dincludes=backport-util-concurrent:backport-util-concurrent 
+2

Era dipendenza di maven stesso su debian (http://packages.debian.org/squeeze/libbackport-util-concurrent-java). E Maven si avvia (e sembra non si fermi) 5 thread per il download di risorse (http://maven.apache.org/guides/mini/guide-configuring-maven.html). – valodzka