在应用程序线程转储中,我可以看到线程池有五个线程,如下所示:
"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上运行)?我可以检测哪些部分应用程序启动?
解决方法
此edu.emory.mathcs.backport包树属于
backport-util-concurrent,它是较旧Java版本的java.util.concurrent的后端口.隐藏的前缀可能已经被诸如maven-shade-plugin这样的工具添加.
如果您使用的是Maven,您可以通过以下方式搜索此依赖关系:
mvn dependency:tree -Dincludes=backport-util-concurrent:backport-util-concurrent