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?
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. –