इस बयान के संदर्भ में पर लिखें,स्पष्टीकरण और एक सी # शब्दकोश
एक शब्दकोश कई पाठकों समवर्ती, जब तक के रूप में संग्रह संशोधित नहीं है समर्थन कर सकते हैं। फिर भी, संग्रह के माध्यम से गणना करना आंतरिक रूप से थ्रेड-सुरक्षित प्रक्रिया नहीं है। दुर्लभ मामले में जहां गणना गणना के साथ का दावा करती है, संग्रह पूरे गणना के दौरान लॉक होना चाहिए। संग्रह को पढ़ने और लिखने के लिए एकाधिक धागे द्वारा एक्सेस करने के लिए, आपको अपने स्वयं के सिंक्रनाइज़ेशन को लागू करना होगा।
क्या पढ़ा और लिखना मतलब है? मेरी समझ यह है कि एक पठन एक ऐसा ऑपरेशन है जो एक कुंजी देखता है और इसके मूल्य का संदर्भ प्रदान करता है और एक लेखन एक ऑपरेशन है जो शब्दकोश से एक महत्वपूर्ण मूल्य जोड़ी जोड़ता है या हटा देता है। हालांकि, मुझे इसके बारे में कुछ भी निर्णायक नहीं मिल रहा है।
तो बड़ा सवाल यह है कि, थ्रेड सुरक्षित शब्दकोश को लागू करते समय, एक ऑपरेशन जो शब्दकोश में मौजूदा कुंजी के मान को अद्यतन करता है, पाठक या लेखक पर विचार करता है? मैं एक शब्दकोश में अद्वितीय कुंजी तक पहुंचने और उनके मानों को संशोधित करने के लिए कई धागे रखने की योजना बना रहा हूं, लेकिन थ्रेड नई कुंजी को जोड़/हटा नहीं पाएंगे।
स्पष्ट प्रभाव, मानते हुए कि मौजूदा मान को संशोधित करना शब्दकोश पर एक लेखन ऑपरेशन नहीं है, यह है कि थ्रेड सुरक्षित डिक्शनरी का मेरा कार्यान्वयन बहुत अधिक कुशल हो सकता है, क्योंकि मुझे हर बार एक विशेष लॉक प्राप्त करने की आवश्यकता नहीं होती है मैं मान को मौजूदा कुंजी पर अपडेट करने का प्रयास करता हूं।
.NET 4.0 से ConcurrentDictionary का उपयोग एक विकल्प नहीं है।
यह वास्तव में एक टिप्पणी है, सवाल का जवाब नहीं। लेखक के लिए प्रतिक्रिया छोड़ने के लिए कृपया "टिप्पणी जोड़ें" का उपयोग करें। – SliverNinja
@ स्लिवरनिंजा, मुझे लगता है कि यह उत्तर मूल प्रश्न को संबोधित करता है "क्या एक ऑपरेशन जो शब्दकोश में मौजूदा कुंजी के मान को अद्यतन करता है, पाठक या लेखक पर विचार करें?"। – binki