java - How can a thread acquire lock on two objects simultaneously as in this case? -


  सार्वजनिक शून्य विधि (प्रकार 1 inst1, type2 inst2) {सिंक्रनाइज़ (inst1) {सिंक्रनाइज़ (inst2) {// मैं इस कोड के इस टुकड़े से समझ सकता हूं कि एक बार धागा विधि में प्रवेश कर लेता है, यह inst1 पर लॉक प्राप्त करता है, और फिर इसे बिना किसी रिलीज के ताला प्राप्त करता है Inst1 लॉक मुझे लगता है कि इन दोनों वस्तुओं को अन्य थ्रेड से लॉक नहीं किया जाता है। 

  1. अगर एक धागा एक ही ऑब्जेक्ट पर एक बार लॉक हासिल कर सकता है और लॉक के बाद केवल एक लॉक का ही इस्तेमाल कर सकता है वर्तमान ऑब्जेक्ट पर जारी किया गया है, कोड का यह भाग मान्य कैसे हो सकता है, या बल्कि यह एक मान्य कोड है जिसे मुझे लगता है कि मैंने कहीं देखा है?
  2. और क्या होगा अगर Type1 और Type2 समान हैं?
  3. यदि हम पद्धति को सिंक्रनाइज़ करते हैं, तो यह विधि के पैरामीटर प्रकारों के अलावा किसी अन्य वर्ग में रहता है, इसके कारण क्या होता है?

    1 यदि कोई थ्रेड एक बार में केवल एक ऑब्जेक्ट पर लॉक हासिल कर सकता है और केवल मौजूदा ऑब्जेक्ट पर लॉक जारी किए जाने पर केवल एक लॉक का ही इस्तेमाल कर सकता है, तो यह कैसे कोड का टुकड़ा वैध हो सकता है, या बल्कि यह मान्य कोड है जिसे मुझे लगता है कि मैंने देखा है यह कहीं भी है?

    यह एक मान्य कोड है, विधि उस ऑब्जेक्ट पर नहीं हैं जहां विधि रहता है, पर inst1 और inst2 । इसके अलावा, लॉक कक्षा पर नहीं है, लेकिन हर वस्तु के लिए

    2 और क्या होगा यदि Type1 और Type2 समान हैं?

    दोबारा, ऑब्जेक्ट्स पर ताले, कक्षाओं पर नहीं हैं यदि inst1 और inst2 समान हैं, तो धागा में केवल एक ताला है, यह एक ही धागे के लिए लॉक के लिए "पुनः दर्ज" के लिए मान्य है

    3 यदि हम पद्धति को सिंक्रनाइज़ करते हैं, तो क्या होता है, यह विधि के पैरामीटर प्रकारों के अलावा अन्य किसी वर्ग में रहता है?

    तब आपके पास एक और ताला है, इस समय ऑब्जेक्ट पर (नहीं वर्ग) जहां विधि निष्पादित की जा रही है।

Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -