आपको "परमाणु" और "थ्रेड-सुरक्षित" के बीच अधिक बारीकी से अंतर करने की आवश्यकता है। जैसा कि आप कहते हैं, लिखते हैं अधिकांश अंतर्निहित मूल्य प्रकारों और संदर्भों के लिए परमाणु हैं।
हालांकि, इसका मतलब यह नहीं है कि वे थ्रेड-सुरक्षित हैं। इसका मतलब यह है कि यदि मूल्य "ए" और "बी" दोनों लिखे गए हैं, तो एक थ्रेड बीच में कुछ नहीं देखेगा। (उदाहरण के लिए 1 से 4 में कोई बदलाव 5, या 2, या 1 या 4 के अलावा कोई भी मूल्य नहीं दिखाएगा।) यह का अर्थ यह नहीं है कि एक थ्रेड वैरिएबल को लिखा गया है जैसे ही "बी" मान दिखाई देगा। इसके लिए, आपको अस्थिरता के मामले में मेमोरी मॉडल को देखने की आवश्यकता है। स्मृति बाधाओं के बिना, आमतौर पर लॉकिंग और/या अस्थिर चर के माध्यम से प्राप्त किया जाता है, मुख्य स्मृति को लिखने में देरी हो सकती है और पढ़ना उन्नत हो सकता है, प्रभावी ढंग से यह मानते हुए कि पिछले पढ़ने के बाद से मूल्य नहीं बदला है।
आप एक काउंटर था और आप अपनी नवीनतम मूल्य के लिए यह पूछा लेकिन कभी स्मृति बाधाओं की कमी की वजह से नवीनतम मूल्य प्राप्त हुआ है, मुझे नहीं लगता कि आप यथोचित कह सकते हैं कि धागे की सुरक्षित भी प्रत्येक ऑपरेशन हालांकि अच्छी तरह से परमाणु हो सकता है।
इसका गुणों के साथ कुछ लेना देना नहीं है, हालांकि - संपत्तियां उनके आसपास सिंटैक्टिक चीनी के साथ बस विधियां हैं। वे थ्रेडिंग के आसपास कोई अतिरिक्त गारंटी नहीं देते हैं। .NET 2.0 मेमोरी मॉडल ईसीएमए मॉडल की तुलना में अधिक गारंटी देता है, और यह संभव है कि यह विधि प्रविष्टि और बाहर निकलने के लिए गारंटी देता है। उन गारंटीयों को गुणों पर भी लागू होना चाहिए, हालांकि मैं ऐसे नियमों की व्याख्या के आसपास घबराहट करूँगा: कभी-कभी स्मृति मॉडल के बारे में तर्क करना बहुत मुश्किल हो सकता है।
स्रोत
2009-07-20 06:00:48
मैं इस अपने आप को थोड़ी देर के लिए पूछने के लिए अर्थ किया गया है ... मैं सिर्फ अनुमान लगा रही है, इसलिए मैं इसे एक जवाब में डाल नहीं होगा , लेकिन अगर ऑटो-प्रॉपर्टी परमाणु हैं तो यह मुझे आश्चर्य नहीं करेगा। शायद कुछ और नहीं है। –