Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Hashtable के लिए सिंक्रनाइज़्ड रैपर बनाएं

Hashtable.Synchronized(Hashtable) स्थैतिक मेथड निर्दिष्ट Hashtable के चारों ओर एक थ्रेड-सेफ (सिंक्रनाइज़्ड) रैपर लौटाता है। रैपर सभी ऑपरेशन्स पर लॉक करता है। मूल हैशटेबल असिंक्रनाइज़्ड रहता है।

उदाहरण 1: असिंक्रनाइज़्ड Hashtable

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("1", "AB");
        hash.Add("2", "CD");
        hash.Add("3", "EF");
        hash.Add("4", "GH");
        hash.Add("5", "IJ");
        hash.Add("6", "KL");
        Console.WriteLine("Hashtable elements...");
        foreach (DictionaryEntry d in hash)
        {
            Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
        }
        Console.WriteLine("Hashtable is synchronized? = " + hash.IsSynchronized);
    }
}

आउटपुट

Hashtable elements...
Key = 1, Value = AB
Key = 2, Value = CD
Key = 3, Value = EF
Key = 4, Value = GH
Key = 5, Value = IJ
Key = 6, Value = KL
Hashtable is synchronized? = False

उदाहरण 2: सिंक्रनाइज़्ड रैपर बनाना

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("1", "Mark");
        hash.Add("2", "Gary");
        hash.Add("3", "Jacob");
        hash.Add("4", "Andy");
        hash.Add("5", "Jack");
        Console.WriteLine("Hashtable elements...");
        foreach (DictionaryEntry d in hash)
        {
            Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
        }
        Console.WriteLine("Hashtable is synchronized? = " + hash.IsSynchronized);
        Hashtable hash2 = Hashtable.Synchronized(hash);
        Console.WriteLine("Hashtable is synchronized? = " + hash2.IsSynchronized);
    }
}

आउटपुट

Hashtable elements...
Key = 1, Value = Mark
Key = 2, Value = Gary
Key = 3, Value = Jacob
Key = 4, Value = Andy
Key = 5, Value = Jack
Hashtable is synchronized? = False
Hashtable is synchronized? = True

Synchronized रैपर प्रत्येक सार्वजनिक मेथड पर लॉक करता है, बुनियादी थ्रेड सुरक्षा प्रदान करता है। हालांकि, कंपाउंड ऑपरेशन्स (जैसे Check-Then-Act) के लिए बाहरी लॉकिंग की अभी भी आवश्यकता होती है। आधुनिक कोड में ConcurrentDictionary<TKey, TValue> पसंद किया जाता है।

  1. परफेक्ट प्रोफेशनल ईमेल हस्ताक्षर बनाने के 7 टिप्स परफेक्ट प्रोफेशनल ईमेल हस्ताक्षर बनाने के 7 टिप्स

    हर पेशेवर को पेशेवर ईमेल लिखना सीखना होगा -- और न केवल अपने करियर को आगे बढ़ाने के लिए। यह कठिन हो सकता है, खासकर जब आपको असभ्य, गुस्सैल, या यहां तक कि ट्रोलिश लोगों से निपटना पड़ता है, लेकिन क्या उन ईमेल पर गर्व करना सम्मानजनक बात नहीं है जो आप भेजते हैं? हमने प्रो की तरह ईमेल करने के बारे में बहुत

  1. लिनक्स पर संगीत बनाने और रिकॉर्ड करने के लिए 6 सर्वश्रेष्ठ ऐप्स लिनक्स पर संगीत बनाने और रिकॉर्ड करने के लिए 6 सर्वश्रेष्ठ ऐप्स

    जब लोग विशिष्ट लिनक्स उपयोगकर्ताओं के बारे में सोचते हैं, तो वे शायद प्रोग्रामर, सिस्टम एडमिनिस्ट्रेटर, और अन्य टेक्नीशियन के बारे में सोचते हैं। जबकि लिनक्स ऑपरेटिंग सिस्टम निश्चित रूप से इस प्रकार के उपयोगकर्ता के लिए महान हो सकते हैं, यह एकमात्र प्रकार के व्यक्ति से बहुत दूर है जिनके लिए वे अच्छे

  1. CockroachDB का लोकतंत्रीकरण: सभी के लिए प्रबंधित सेवा CockroachDB का लोकतंत्रीकरण: सभी के लिए प्रबंधित सेवा

    मूल रूप से 30 सितंबर 2019 को ObjectRocket.com/blog पर प्रकाशित ऐतिहासिक रूप से, CockroachDB के लिए एक प्रबंधित सेवा DBaaS का मूल्य समझने वाले कई उपयोगकर्ताओं की पहुंच से बाहर हो सकती थी। ObjectRocket का प्रबंधित CockroachDB ग्राहकों को लगभग $21/G स्टोरेज के लिए CockroachDB की शक्ति का लाभ उठाने में