इस कोड में एकमात्र मुद्दा जो मैं देख सकता हूं वह यह है कि "कैश्डकॉन्स्ट्रक्टर" फ़ील्ड अस्थिर है, जबकि यह धागे के बीच मूल्य दृश्यता प्रभाव की गारंटी देता है, इस विशेष कोड ब्लॉक में एक क्विर्क है कि अलग-अलग थ्रेड कैश किए गए हैं कंसस्ट्रक्टर मूल्य से पहले शून्य धागे में से एक द्वारा आवंटित किया जाएगा, यानी प्रारंभिक अनुक्रम परमाणु नहीं है। यह केवल नेतृत्व कर सकते हैं कि एक साथ cachedConstructor बार की जोड़ी सौंपा जा सकता है, लेकिन अगर कोई भी विशेष रूप से निर्भर करता है कि यह वही निर्माता उदाहरण होगा कोड को तोड़ने नहीं होंगे। cachedConstructor initialisation ब्लॉक सिंक्रनाइज़ किया जाएगा, तो यह परमाणु हो जाएगा, अर्थात cachedConstructor एक बार रेस स्थिति की परवाह किए बिना ही सौंपा।
जिसके अनुसार, कोड को ठीक से काम करना चाहिए, लेकिन सिर्फ एक से अधिक थ्रेड द्वारा कैश मूल्य का साथ-साथ अत्यधिक पुन: संगणना करने के लिए अनुमति देता है।
स्रोत
2012-11-01 12:58:15
आप प्रासंगिक "कोड निम्नलिखित" का हवाला देते हैं कृपया सकता है? – Vlad
मुझे नोट मिला (धन्यवाद google) http://cr.openjdk.java.net/~jrose/7030453/webrev.00/raw_files/new/src/share/classes/java/lang/Class.java – Augusto
तरह का DCL? http://www.javaworld.com/jw-02-2001/jw-0209-double.html – Flot2011