आवेदन धागा डंप में मैं ThreadPool पाँच धागे के साथ निम्नलिखित की तरह देख सकते हैं: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 पर चल रहा है)? क्या मैं पता लगा सकता हूं कि एप्लिकेशन का कौन सा हिस्सा इसे शुरू कर रहा है?
आप, स्टार्टअप के दौरान इस एप्लिकेशन को डिबग 'hidden.edu.emory.mathcs.backport.java पर एक ब्रेकपाइंट डाल सकते हैं। use.concurrent.ThreadPoolExecutor 'के निर्माता, और देखें कि इसे कौन कॉल करता है। यदि आप इसे चलाते समय केवल डीबग कर सकते हैं, तो 'निष्पादन' और 'सबमिट' विधियों को तोड़ दें। कॉलिंग कोड की प्रकृति आपको बताएगी कि इसका उपयोग क्यों किया जा रहा है। –