在应用程序线程转储中,我可以看到具有五个线程的线程池,如下所示:

"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.util.concurrent向旧Java版本的反向移植。 hidden前缀可能已由maven-shade-plugin之类的工具添加。

如果您使用的是Maven,则可以使用以下方法搜索此依赖项:

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

关于java - hidden.edu.emory.mathcs.backport *,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14465367/

10-11 17:02