Java JVM प्रोफाइलिंग, थ्रेड स्टेटस - "मॉनिटर" स्टेटस का क्या अर्थ है?


81

यहाँ छवि विवरण दर्ज करें

मैं एक मल्टी थ्रेड जावा एप्लिकेशन को कनेक्ट करने के लिए विजुअल वीएम का उपयोग करता हूं, थ्रेड में 4 स्थिति है, अर्थात् रनिंग, स्लीप, वेट, मॉनिटर। इस निगरानी स्थिति का क्या अर्थ है? प्रतीक्षा और मॉनिटर के बीच अंतर क्या है?

जवाबों:


89

ये अवस्थाएं वैसी ही हैं जैसा कि Thread.Stateएनम में उल्लिखित है । "प्रतीक्षा" का अर्थ है, जैसा कि प्रलेखन कहता है:

निम्न विधियों में से एक को कॉल करने के कारण एक धागा प्रतीक्षा की स्थिति में है:

  • Object.wait बिना किसी टाइमआउट के
  • कोई टाइमआउट के साथ
  • LockSupport.park

"मॉनिटर" वह BLOCKEDस्थिति है, जिसमें थ्रेड किसी ऑब्जेक्ट पर लॉक प्राप्त करने के लिए प्रतीक्षा कर रहा है (क्योंकि यह एक synchronizedब्लॉक या विधि में प्रवेश करने की कोशिश कर रहा है, जबकि दूसरा धागा पहले से ही संबंधित लॉक रखता है)।


24
यह विषय (ओपी की तरह) के लिए किसी के लिए भी उपयोगी हो सकता है, यह जानने के लिए कि "मॉनिटर" का उपयोग "लॉक" के समानार्थक शब्द के रूप में यहां और प्रलेखन में किया गया है।
मैट बी

6
क्या यह जानने के लिए कि कौन सी सिंक्रोनाइज़्ड वस्तु (या लाइन ऑफ़ कोड) है, जो कि थ्रेड को मॉनिटर / मॉनिटर करने का कारण है?
18:123 पर user123321

3
@ user123321 आप एक थ्रेड डंप कर सकते हैं। ("थ्रेड्स" टैब के ऊपरी दाएं कोने में बटन।) आप देख सकते हैं कि थ्रेड किसके विरुद्ध सिंक्रनाइज़ करने का प्रयास कर रहा है और कौन सा थ्रेड लॉक रखता है।
फीलर जूल 25'13

और स्क्रीनशॉट में क्या अंतर है sleepingऔर waitingदिखाया गया है?
मुहम्मद गालबाना 20

7

यह "निगरानी" स्थिति नहीं है ... यह इंगित करता है कि धागा Thread.State.BLOCKEDराज्य में है। मुझे लगता है कि एक और अच्छा जवाब है, मैं आपको गहरी व्याख्या के लिए इस लिंक पर बताता हूं


5

मॉनिटर का अर्थ होगा कि थ्रेड किसी ऑब्जेक्ट पर लॉक प्राप्त करने के लिए प्रतीक्षा कर रहा है। उदाहरण के लिए जब एक थ्रेड एक सिंक्रनाइज़ेशन विधि चला रहा होता है और दूसरा व्यक्ति उसी ऑब्जेक्ट पर इसे लागू करने की कोशिश करता है, तो यह तब तक नहीं होगा जब तक कि विधि का पहला आह्वान समाप्त नहीं हो जाता। ऐसा इसलिए है क्योंकि पहले धागे में उस ऑब्जेक्ट पर एक मॉनिटर या लॉक होता है, इसलिए दूसरे को जारी होने तक इंतजार करना होगा।

से ओरेकल थ्रेडिंग ट्यूटोरियल :

"सिंक्रोनाइज़ेशन को आंतरिक इकाई के रूप में जाना जाता है जिसे आंतरिक लॉक या मॉनिटर लॉक के रूप में बनाया जाता है। (एपीआई विनिर्देश अक्सर इस इकाई को" मॉनिटर "के रूप में संदर्भित करता है) आंतरिक लॉकेशन सिंक्रनाइज़ेशन के दोनों पहलुओं में एक भूमिका निभाते हैं: विशेष एक्सेस को एन्हांस करते हुए। ऑब्जेक्ट की स्थिति और स्थापना होती है-रिश्तों से पहले जो दृश्यता के लिए आवश्यक हैं। "

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.