9

在應用程序線程轉儲我可以看到線程池與五個線程類似以下內容: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) 

但我不使用這樣的事直接並沒有看到什麼像這在依賴關係。

這是什麼(hidden.edu.emory.mathcs.backport)和它爲什麼使用(在jdk 7上運行的應用程序)?我可以檢測到啓動它的應用程序的哪一部分?

+0

如果你能在啓動過程中調試這個程序,把一個斷點'hidden.edu.emory.mathcs.backport.java。 util.concurrent.ThreadPoolExecutor的構造函數,並查看誰調用它。如果只能在運行時調試它,則斷點執行和提交方法。調用代碼的性質會告訴你它爲什麼被使用。 –

回答

13

edu.emory.mathcs.backport包樹屬於backport-util-concurrent這是java.util.concurrent回舊Java版本。 hidden前綴可能已被諸如maven-shade-plugin之類的工具添加。

如果你使用Maven的,你可以搜索該依存性:

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

這是maven本身對debian的依賴(http://packages.debian.org/squeeze/libbackport-util-concurrent-java)。 Maven開始(並且似乎不停止)下載工件的5個線程(http://maven.apache.org/guides/mini/guide-configuring-maven.html)。 – valodzka