जावा गुरुओं के लिए आधारित कस्टम मानचित्र ReentrantReadWriteLock बनाम,ConcurrentHashMap को पुन: लोड
वर्तमान में हम एक HashMap<String,SomeApplicationObject>
जो अक्सर पढ़ सकते हैं और कभी-कभी संशोधित और हम मुद्दों कर रहे किया जा रहा है है कि संशोधन/पुन: लोड, पढ़ें आपरेशन रिटर्न दौरान null
जो स्वीकार्य नहीं है।
इसे ठीक करने के मैं निम्नलिखित विकल्प हैं:
ए का प्रयोग करें ConcurrentHashMap
कौन सा पहली पसंद लेकिन आपरेशन जो हम बात कर रहे हैं की तरह लग रहा reload()
है - इसका मतलब है clear()
replaceAll()
द्वारा पीछा किया। तो यदि Map
पोस्ट clear()
और पूर्व replaceAll()
पढ़ा जाता है तो यह शून्य हो जाता है जो वांछनीय नहीं है। भले ही मैं synchronize
यह समस्या का समाधान नहीं करता है।
बी एक और कार्यान्वयन पर ReentrantReadWriteLock
आधारित मैं कहां से reload()
ऑपरेशन से पहले अधिग्रहण Write Lock
बन जाएगा बनाएँ। यह अधिक उपयुक्त लगता है लेकिन मुझे लगता है कि इसके लिए पहले से ही कुछ उपलब्ध होना चाहिए और मुझे पहिया को फिर से शुरू करने की आवश्यकता नहीं है।
सबसे अच्छा तरीका क्या है?
संपादित करें क्या कोई संग्रह पहले से ही इस सुविधा के साथ उपलब्ध है?
आपके नक्शे प्रभावी रूप से अपरिवर्तनीय हैं, जो उन्हें 'अस्थिर' के माध्यम से प्रकाशन के लिए एक आदर्श लक्ष्य बनाता है। –
** प्रभावी रूप से अपरिवर्तनीय ** क्षमा करें मुझे 'अपरिवर्तनीय' समझ में नहीं आता है ... क्या आप कृपया कुछ संकेत प्रदान कर सकते हैं ??? – SiB