डिफ़ॉल्ट रूप से, हॉटस्पॉट के साथ, एक के लिए CTRL-तोड़ धागा डंप सूचीबद्ध नहीं करेगा क्या धागे java.lang.concurrent
ताले पकड़े हुए हैं। और मैं समझता हूं कि इन ताले के साथ, हॉटस्पॉट के बारे में जानकारी नहीं हो सकती है कि किस स्टैक फ्रेम को लॉक अधिग्रहित किया गया था। आप JVM विकल्प -XX:+PrintConcurrentLocks
जोड़ते हैं, तो एक के लिए CTRL-तोड़ ढेर डंप (एक थ्रेड स्टैक ट्रेस करने के बाद) सूची जाएगा कि फ्रेम द्वारा आयोजित किसी भी समवर्ती ताले। उदाहरण के लिए:क्यों इस हॉटस्पॉट JVM नहीं विकल्प डिफ़ॉल्ट रूप है? -XX: + PrintConcurrentLocks
"D-Java-5-Lock" prio=6 tid=0x00000000069a1800 nid=0x196c runnable [0x000000000770f000]
java.lang.Thread.State: RUNNABLE
at com.Tester.longDelay(Tester.java:41)
at com.Tester$D.run(Tester.java:88)
Locked ownable synchronizers:
- <0x00000007d6030898> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
इस विकल्प के बिना, यह क्या धागा पोस्टमार्टम में इस लॉक कर रहा है यह पता लगाने के लिए संभव नहीं है। यह विकल्प डिफ़ॉल्ट क्यों नहीं है? क्या कुछ गैर-स्पष्ट प्रदर्शन या स्थिरता जुर्माना है? जब मैं इस पर चर्चा खोजने के लिए खोज करता हूं, कुछ भी नहीं आता है।
विवरण जोड़ें। – egorlitvinenko