9

W wątku aplikacja wysypisko widzę puli wątków z pięciu wątków jak następuje: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) 

Ale nie używam nic tak bezpośrednio i nie widzę niczego tak jak w zależnościach.

Co to jest (hidden.edu.emory.mathcs.backport) i dlaczego użyto (aplikacja działająca w jdk 7)? Czy mogę wykryć, która część aplikacji go uruchamia?

+0

Jeśli można debugować aplikację podczas uruchamiania, umieścić punkt przerwania na 'hidden.edu.emory.mathcs.backport.java. util.concurrent.ThreadPoolExecutor''s constructor i zobacz kto go nazywa. Jeśli możesz tylko debugować go podczas działania, przerwij metody 'execute' i' submit'. Charakter kodu wywołującego powie Ci, dlaczego jest używany. –

Odpowiedz

13

To drzewo pakietów należy do backport-util-concurrent, co jest wersją standardową java.util.concurrent dla starszych wersji Javy. Prefiks hidden mógł zostać dodany przy użyciu narzędzi takich jak maven-shade-plugin.

Jeśli używasz Maven można szukać tej zależności z:

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

To była zależność samego maven od debiana (http://packages.debian.org/squeeze/libbackport-util-concurrent-java). I maven zaczyna (i wydaje się nie przerywać) 5 wątków do pobierania artefaktów (http://maven.apache.org/guides/mini/guide-configuring-maven.html). – valodzka