जावा में सिंक्रोनाइज्ड स्टेटिक मेथड्स: ऑब्जेक्ट-क्लास दुविधा को अनलॉक करना
जावा डॉक्यूमेंटेशन में कहा गया है कि एक ही ऑब्जेक्ट पर सिंक्रोनाइज्ड तरीकों के कई इनवोकेशन बीच में नहीं छोड़ेंगे. हालाँकि, जब स्थैतिक तरीकों की बात आती है तो क्या होता है? स्थैतिक विधियाँ विशिष्ट वस्तुओं से संबद्ध नहीं हैं, तो क्या सिंक्रनाइज़ कीवर्ड ऑब्जेक्ट या वर्ग को संदर्भित करता है?
उत्तर को तोड़ना
जावा भाषा विशिष्टता के अनुसार (8.4.3.6), सिंक्रनाइज़ विधियां निष्पादन से पहले एक मॉनिटर प्राप्त करती हैं। स्थिर तरीकों के लिए, यह मॉनिटर विधि के वर्ग के लिए क्लास ऑब्जेक्ट से जुड़ा होता है, जबकि उदाहरण के तरीकों के लिए, यह आह्वान किए गए ऑब्जेक्ट से जुड़ा होता है।
सरल शब्दों में, स्थिर तरीके क्लास स्तर पर लॉक होते हैं, यह सुनिश्चित करते हुए कोई भी एकाधिक आमंत्रण एक साथ नहीं होता है। यह समझ में आता है क्योंकि वर्ग के सभी उदाहरण समान स्थैतिक तरीकों को साझा करते हैं, और टकराव को रोकने के लिए वर्ग स्तर पर सिंक्रनाइज़ेशन बनाए रखा जाना चाहिए।
निहितार्थ और सीमाएं
यह तंत्र गारंटी देता है कि स्थैतिक विधियाँ किसी वर्ग के सभी उदाहरणों के बीच सिंक्रनाइज़ रहती हैं। हालाँकि, इसका यह भी अर्थ है कि कोई भी सिंक्रनाइज़ स्टैटिक विधि अनजाने में उसी क्लास में अन्य स्टैटिक तरीकों को ब्लॉक कर सकती है।
निम्नलिखित उदाहरण पर विचार करें:
public class MyClass { public static synchronized void method1() { ... } public static synchronized void method2() { ... } }
यदि मेथड1() को MyClass के इंस्टेंस पर निष्पादित किया जा रहा है, तो मेथड2() को उसी क्लास के किसी अन्य इंस्टेंस पर एक साथ निष्पादित नहीं किया जा सकता है, क्योंकि उन दोनों को एक ही क्लास-स्तरीय मॉनिटर की आवश्यकता होती है।
निष्कर्ष
जावा में स्थिर सिंक्रनाइज़ विधियां कक्षा स्तर पर सिंक्रनाइज़ेशन सुनिश्चित करने का एक तरीका प्रदान करती हैं। वे उन परिदृश्यों में उपयोगी होते हैं जहां वर्ग-व्यापी संसाधनों तक पहुंच को नियंत्रित करना आवश्यक होता है। हालाँकि, इस सिंक्रनाइज़ेशन के संभावित प्रभाव के बारे में जागरूक होना और गतिरोध या प्रदर्शन समस्याओं से बचने के लिए अनुप्रयोगों को तदनुसार डिज़ाइन करना महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3