"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में स्टेटिक बनाम वोलेटाइल: आपको प्रत्येक की आवश्यकता कब होती है?

जावा में स्टेटिक बनाम वोलेटाइल: आपको प्रत्येक की आवश्यकता कब होती है?

2024-11-10 को प्रकाशित
ब्राउज़ करें:111

Static vs Volatile in Java: When Do You Need Each?

जावा में स्थिर बनाम अस्थिर: मल्टीथ्रेडेड अनुप्रयोगों के लिए अंतर स्पष्ट करना

जावा में, स्थिर और अस्थिर की अवधारणाएं एक महत्वपूर्ण भूमिका निभाती हैं सभी थ्रेड्स में परिवर्तनीय दायरे और दृश्यता को नियंत्रित करना। हालांकि ये शब्द अक्सर विनिमेय प्रतीत होते हैं, वे वास्तव में अलग-अलग व्यवहार प्रदर्शित करते हैं जो एप्लिकेशन प्रदर्शन और शुद्धता को प्रभावित करते हैं।

स्टेटिक बनाम वोलेटाइल क्या है?

  • स्टेटिक चर को थ्रेड संदर्भों की संख्या की परवाह किए बिना, एक वर्ग के सभी उदाहरणों में साझा किया जाता है। प्रत्येक वर्ग में एक विशेष नाम का केवल एक स्थिर चर होता है।
  • Volatile दूसरी ओर, चर, सभी थ्रेड्स के लिए दृश्यमान होने की गारंटी देते हैं। हालाँकि, स्थैतिक चर के विपरीत, एक वर्ग के प्रत्येक उदाहरण में एक अस्थिर चर की अपनी प्रति होती है। अस्थिर का तात्पर्य सभी थ्रेड्स में एक वेरिएबल की एक एकल प्रतिलिपि से है। बहरहाल, मामला यह नहीं। वोलेटाइल केवल यह सुनिश्चित करता है कि अन्य थ्रेड्स से अपडेट की प्रतीक्षा करने के बजाय थ्रेड-लोकल कैश प्रतियां तुरंत फ्लश हो जाती हैं। . इससे ऐसी स्थितियाँ उत्पन्न हो सकती हैं जहाँ थ्रेड्स के स्थानीय कैश में पुराने मान हैं। एक वर्ग, वे बहु-थ्रेडेड परिदृश्यों में समस्याग्रस्त हो सकते हैं। उचित सिंक्रनाइज़ेशन के बिना, स्थिर मान तक पहुँचने वाले एकाधिक थ्रेड के परिणामस्वरूप डेटा भ्रष्टाचार हो सकता है।
अस्थिर चर ऐसे समवर्ती मुद्दों से बचने का एक तरीका प्रदान करते हैं। एक वेरिएबल को अस्थिर घोषित करके, हम थ्रेड्स को हमेशा वैश्विक मान पढ़ने और कैश्ड मानों पर भरोसा न करने के लिए बाध्य करते हैं।

स्टेटिक बनाम वोलेटाइल का उपयोग कब करें

जब आपको किसी वर्ग के सभी उदाहरणों में एकल साझा मान की आवश्यकता हो तो

static

का उपयोग करें। बिना कैशिंग के अपडेट किया गया। वोलेटाइल सिंक्रोनाइज़ेशन का प्रतिस्थापन नहीं है

हालांकि वोलेटाइल दृश्यता सुनिश्चित करता है, लेकिन यह परमाणुता या थ्रेड-सुरक्षित संचालन की गारंटी नहीं देता है। सिंक्रोनाइज़्ड संचालन की आवश्यकता वाले कार्यों के लिए, आपको उचित सिंक्रोनाइज़ेशन प्रिमिटिव जैसे लॉक या एटॉमिकइंटेगर क्लास का उपयोग करना चाहिए।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3