9

In Anwendung Thread-Dump kann ich Threadpool mit fünf Fäden sehen wie folgt vor: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) 

Aber ich nichts nicht direkt diese verwenden wie und nichts sehen so in Abhängigkeiten.

Was ist das (hidden.edu.emory.mathcs.backport) und warum es verwendet (Anwendung läuft auf jdk 7)? Kann ich erkennen, welcher Teil der Anwendung es startet?

+0

Wenn Sie diese App während des Starts debuggen, einen Haltepunkt setzen auf 'hidden.edu.emory.mathcs.backport.java. util.concurrent.ThreadPoolExecutor's Konstruktor, und sehen, wer es aufruft. Wenn Sie es nur während der Ausführung debuggen können, setzen Sie die Methoden 'execute' und' submit'. Die Art des aufrufenden Codes wird Ihnen sagen, warum es verwendet wird. –

Antwort

13

Dieser edu.emory.mathcs.backport Paketbaum gehört zu backport-util-concurrent, der ein Backport von java.util.concurrent zu den älteren Java-Versionen ist. Das Präfix hidden wurde möglicherweise von Tools wie maven-shade-plugin hinzugefügt.

Wenn Sie Maven verwenden können Sie diese Abhängigkeit suchen mit:

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

Es war die Abhängigkeit von Maven selbst auf debian (http://packages.debian.org/squeeze/libbackport-util-concurrent-java). Und maven startet (und scheint nicht aufzuhören) 5 Threads zum Herunterladen von Artefakten (http://maven.apache.org/guides/mini/guide-configuring-maven.html). – valodzka