2011-09-21 20 views
5

मैंने पहले ConcurrentDictionary वस्तु उपयोग नहीं किया है और इसके बारे में कुछ प्रश्न हैं:कैसे ConcurrentDictionary का उपयोग किया जाता है और इसे क्रमबद्ध कैसे किया जाता है?

  1. मैं सही हूँ कि एक से अधिक थ्रेड एक ही समय में शब्दकोश से पढ़ सकते हैं, लेकिन अगर यह करने के लिए, कोई लिखित किया जा रहा है अन्य थ्रेड इसे एक्सेस कर सकते हैं?

  2. क्या इस ऑब्जेक्ट को डिस्क पर क्रमबद्ध किया जा सकता है?

धन्यवाद।

+0

कोई जवाब नहीं देता है, लेकिन इसे लेखकों ([स्रोत] (http://www.lovethedot.net/2009/04/bit-about-performance-of-concurrent.html) से अधिक पाठकों के लिए डिज़ाइन किया गया था। , जोश फिलिप के जवाब देखें)। इसका उपयोग करते समय इसे ध्यान में रखें। –

उत्तर

13

क्या मैं सही करता हूं कि एक ही समय में कई धागे शब्दकोश से पढ़ सकते हैं, लेकिन यदि यह लिखा जा रहा है, तो कोई अन्य धागा इसका उपयोग नहीं कर सकता है?

नहीं, आप सुरक्षित रूप से कई धागे से पढ़ और लिख सकते हैं। बेशक आंतरिक रूप से मुझे लगता है कि कुछ सिंक्रनाइज़ेशन हो रहा है लेकिन प्रदर्शन जुर्माना छोटा होना चाहिए और आपको इसके बारे में चिंतित नहीं होना चाहिए और कोई अतिरिक्त सिंक्रनाइज़ेशन नहीं करना चाहिए।

क्या इस ऑब्जेक्ट को डिस्क पर क्रमबद्ध किया जा सकता है?

आपके द्वारा उपयोग किए जाने वाले धारावाहिक पर निर्भर करता है।

  • JavaScriptSerializer: हाँ
  • Json.NET: हाँ
  • DataContractSerializer: हाँ
  • BinaryFormatter: हाँ
  • XmlSerializer: कोई (अच्छी तरह से, आप इसे काम करने के लिए कुछ हैकिंग कर सकता है लेकिन यह एक हो जाएगा पीआईटीए =>XmlSerializerIDictionary<TKey, TValue> इंटरफेस के लिए एलर्जी है)
3
  1. क्या मैं सही करता हूं कि एक ही समय में कई धागे शब्दकोश से पढ़ सकते हैं, लेकिन यदि यह लिखा जा रहा है, तो कोई अन्य धागा इसका उपयोग नहीं कर सकता है?

यह मानने योग्य नहीं है, आप पढ़ सकते हैं और एक से अधिक थ्रेड से लिखने और तुल्यकालन के बारे में वर्ग चिंता कर सकते हैं।

  1. क्या इस ऑब्जेक्ट को डिस्क पर क्रमबद्ध किया जा सकता है?

हाँ, यह [Serializable] के साथ चिह्नित है। और आप हमेशा <K,V> जोड़े निकाल सकते हैं और अपनी पसंद के किसी भी सीरिएलाइज़र का उपयोग कर सकते हैं।

संबंधित मुद्दे