क्योंकि यह अंतिम है, हां। अंतिम चर के पास विशेष थ्रेड-सुरक्षा अर्थशास्त्र होते हैं, उस अन्य धागे में कम से कम उस राज्य में अंतिम क्षेत्र को देखने की गारंटी दी जाती है जब यह उसके कन्स्ट्रक्टर समाप्त हो गया था।
यह JLS 17.5 में है, हालांकि भाषा थोड़ी घनी है। ये अर्थशास्त्र जावा 1.5 में विशेष रूप से JSR-133 द्वारा पेश किए गए थे। जेएसआर -133 और इसके विभिन्न प्रभावों की गैर-विशिष्ट चर्चा के लिए यह पृष्ठ देखें।
ध्यान दें कि यदि आप इसके निर्माता के बाद इंस्टेंस को संशोधित करते हैं, तो आवश्यक रूप से थ्रेड सुरक्षित है। उस स्थिति में, आपको किनारों से पहले होने वाली सुनिश्चित करने के लिए सामान्य थ्रेड सुरक्षा सावधानी बरतनी होगी।
मुझे काफी यकीन है (हालांकि 100% नहीं) यह तथ्य है कि कक्षा प्रारंभिकता केवल एक धागा एक कारक नहीं है। यह सच है कि कक्षा केवल एक थ्रेड द्वारा शुरू की जाती है, लेकिन मुझे विश्वास नहीं है कि किसी भी विशिष्ट होता है- उस धागे के बीच स्थापित किनारों से पहले किसी भी अन्य थ्रेड जो क्लास का उपयोग करता है (अन्य थ्रेड के अलावा पुन: प्रारंभ करने के अलावा कक्षा)। तो, final
कीवर्ड के बिना, एक और धागा ऑब्जेक्ट का आंशिक रूप से निर्मित उदाहरण देखने में सक्षम होगा। विशिष्ट होता है- इससे पहले कि जेएमएम परिभाषा JLS 17.4.5 में हैं, और कक्षा प्रारंभिक सूची सूचीबद्ध नहीं है।
हाँ, धन्यवाद। महान उत्तर – MyTitle
मेरा मानना है कि अंतिम से अधिक महत्वपूर्ण कारण यह है कि कक्षा प्रारंभिक (स्थिर प्रारंभिक) को सिंक्रनाइज़ किया जाना चाहिए और थ्रेड सुरक्षित होना चाहिए। यह सिंक्रनाइज़ेशन का उपयोग करते हुए ऑर्डर करने से पहले होता है। अधिक जानकारी के लिए 12.4.2 (http://java.sun.com/docs/books/jls/third_edition/html/execution.html#12.4.2) देखें। – sjlee
@sjlee यह सच है कि प्रारंभिकरण को ताले की आवश्यकता होती है, लेकिन यदि थ्रेड ए MyClass को प्रारंभ करता है, और थ्रेड बी लगभग 5 मिनट बाद आता है और MyClass का उपयोग करता है, तो थ्रेड बी MyClass को प्रारंभ करने का प्रयास नहीं करेगा (क्योंकि यह पहले ही प्रारंभ हो चुका है)। इसका मतलब है कि यह 'MyClass.class' पर लॉक नहीं प्राप्त करेगा, जिसका अर्थ है कि थ्रेड ए के कार्यों और थ्रेड बी के बीच संबंधों से पहले ऐसा नहीं होता है। यदि हर धागे ने इसे 'MyThread.class' पर लॉक किया था, जब भी इसे इस्तेमाल किया जाता था, तो आपको संबंधों से पहले किसी भी अन्य घटना को स्थापित करने की आवश्यकता नहीं होगी। – yshavit