2011-09-23 12 views
8

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

synchronized(object){ 
    // some code here 
    // no function call 
} 

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

कृपया मुझे जवाब दें क्या यह सच है?

+6

तो विनम्र और अच्छी तरह से मज़ेदार! –

+0

@ जोश: काफी विपरीत, असल में - "सम्मानित प्रोग्रामर" शब्द का उपयोग करने का तात्पर्य है कि हम में से कुछ * नहीं हैं (जो दावा निश्चित रूप से सत्य है)। – MusiGenesis

+3

हर कोई जो समझने के लिए समझदार है कि मैं ग्रीटिंग कर रहा था, उसे हर किसी को बधाई देने की जरूरत है। धन्यवाद पॉर्डन सर, हर किसी के लिए मेरा सम्मान ध्यान देने के लिए। और MusiGenesis, हर कोई जो सम्मान के योग्य मानता है वह सम्मानजनक है। जो लोग मेरा सम्मान मानते थे उनके लिए था, और अन्य खुश थे ............ – user961690

उत्तर

9

हां, हर जावा ऑब्जेक्ट मॉनीटर के रूप में कार्य कर सकता है।

और चूंकि यह इस तरह के एक संक्षिप्त उत्तर, बोनस के लिए, यह एक दिलचस्प पढ़ा है: Does the JVM create a mutex for every object in order to implement the 'synchronized' keyword? If not, how?

भी ध्यान रखें कि सी # उनकी वस्तुओं, लेकिन मूल्य प्रकार भी है (जो मॉनिटर नहीं कर रहे हैं के साथ कुछ ऐसा ही)

+0

आपको बहुत बहुत धन्यवाद – user961690

+7

मुझे "प्रिय" से प्यार है! मेरी दादी की तरह StackOverflow पर पोस्ट कर रहा था ... –

+0

"प्रिय" का क्या अर्थ है? –

5

बस ध्यान रखें कि यदि आपके पास एक चर है जो null है, तो आप इसे लॉक नहीं कर सकते हैं। साथ ही, Integer जैसी चीजें ऑब्जेक्ट्स हैं, int या float नहीं है। आप Integer या int[] लॉक कर सकते हैं, लेकिन int नहीं।

+1

आपको बहुत बहुत धन्यवाद – user961690

संबंधित मुद्दे