जावा अनुप्रयोग आवश्यकता के लिए संग्रह चयन सिंक्रनाइज़-जावा

क्या है सिंक्रनाइज़ संग्रह जावा में मतलब है। यदि मैं सर्वलेट से जेएसपी पेज में उपयोगकर्ता के रिकॉर्ड प्रिंट कर रहा हूं, तो निम्नलिखित के बीच चयन करने के लिए कौन सा विकास अनुप्रयोग चुनना है

  1. हैश मैप
  2. हैश टेबल

उत्तर:

उत्तर № 1 के लिए 1

सिंक्रनाइज़ेशन किसी भी साझा संसाधन में एकाधिक धागे की पहुंच को नियंत्रित करने की क्षमता है।

सिंक्रनाइज़ संग्रह कक्षाएं हैश टेबल तथा वेक्टर, तथा स्थिर के तरीके java.util.Collections कक्षा synchronizedCollection(),synchronizedSet(), synchronizedSortedMap(),synchronizedSortedSet() मानचित्र, सूची और सेट का मूल सशर्त रूप से थ्रेड-सुरक्षित कार्यान्वयन प्रदान करें।

के रूप में javadocs कहते हैं - अगर एक थ्रेड-सुरक्षित कार्यान्वयन नहीं हैआवश्यक है, हैशटेबल के स्थान पर हैश मैप का उपयोग करने की अनुशंसा की जाती है। यदि थ्रेड-सुरक्षित अत्यधिक समवर्ती कार्यान्वयन वांछित है, तो हैशटेबल के स्थान पर ConcurrentHashMap का उपयोग करने की अनुशंसा की जाती है।

के बीच अंतर Hashtable तथा ConcurrentHashMap : ConcurrentHashMap केवल मानचित्र के कुछ हिस्से को बंद कर दिया है जबकि हैशटेबल पुनरावृत्ति करते समय पूर्ण मानचित्र लॉक करता है

ConcurrentHashMap समरूपता के लिए डिज़ाइन किया गया है और प्रदर्शन में सुधार हुआ है HashMap जो प्रकृति द्वारा सिंक्रनाइज़ नहीं किया जा सकता है, का उपयोग करके एक रैपर लगाने के द्वारा सिंक्रनाइज़ किया जा सकता है Collections.synchronizedMap()

अंतर : ConcurrentHashMap जबकि शून्य कुंजी या शून्य मानों की अनुमति न दें HashMap शून्य कुंजी की अनुमति देता है।


जवाब के लिए 0 № 2

एक सिंक्रनाइज़ संग्रह एक है जो एकाधिक धागे से समवर्ती अद्यतनों के लिए थ्रेड-सुरक्षित है। सामान्य रूप से, जावा में:

  • हैशटेबल का कभी भी उपयोग न करें। इसके बजाय ConcurrentHashMap का उपयोग करें। हालांकि हैशटेबल थ्रेड-सुरक्षित है, ConcurrentHashMap में बेहतर प्रदर्शन है और समान समवर्ती गारंटी प्रदान करता है।
  • यदि आपको समेकन की आवश्यकता नहीं है (यानी नक्शा केवल एक थ्रेड द्वारा उपयोग किया जाएगा) हैश मैप का पक्ष लें

जेएसपी प्रश्न के लिए, यह वास्तव में निर्भर करता है।यदि आप एक ही मानचित्र उदाहरण को एकाधिक थ्रेडों में साझा कर रहे हैं (जैसे, यदि यह एप्लिकेशन में "वैश्विक" है) तो ConcurrentHashMap का उपयोग करें। यदि आप इसे किसी अनुरोध में बनाते हैं, तो जब आप "पूर्ण हो जाते हैं, और इसका उपयोग कभी भी किसी अन्य थ्रेड में नहीं किया जाता है, तब से छुटकारा पाएं, फिर केवल हैश मैप का उपयोग करें।

इसमें कुछ और विवरण हैं इस सवाल भी


संबंधित सवाल
सबसे लोकप्रिय