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

C# में Queue.IsSynchronized प्रॉपर्टी


C# में Queue.IsSynchronized प्रॉपर्टी यह जांचने के लिए उपयोग की जाती है कि कतार (Queue) तक पहुंच सिंक्रोनाइज्ड (थ्रेड-सेफ) है या नहीं। यह एक बूलियन मान लौटाती है: true यदि कतार सिंक्रोनाइज्ड है, अन्यथा false।

सिंटैक्स

public virtual bool IsSynchronized { get; }

उदाहरण 1: डिफ़ॉल्ट कतार की सिंक्रोनाइजेशन जांच

using System; 
using System.Collections; 

public class Demo { 
    public static void Main() { 
        Queue queue = new Queue(); 
        queue.Enqueue(100);
        queue.Enqueue(200);
        queue.Enqueue(300);
        queue.Enqueue(400);
        queue.Enqueue(500);
        queue.Enqueue(600);
        queue.Enqueue(700);
        queue.Enqueue(800);
        queue.Enqueue(900);
        queue.Enqueue(1000);
        
        Console.WriteLine("Queue...");
        IEnumerator demoEnum = queue.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Console.WriteLine(demoEnum.Current);
        }
        
        Console.WriteLine("Is Queue synchronized? = " + queue.IsSynchronized);
    } 
}

आउटपुट

Queue...
100
200
300
400
500
600
700
800
900
1000
Is Queue synchronized? = False

उदाहरण 2: Synchronized() मेथड से थ्रेड-सेफ कतार बनाना

using System; 
using System.Collections; 

public class Demo { 
    public static void Main() { 
        Queue queue = new Queue(); 
        queue.Enqueue("AB");
        queue.Enqueue("BC");
        queue.Enqueue("CD");
        queue.Enqueue("DE");
        queue.Enqueue("EF");
        queue.Enqueue("FG");
        queue.Enqueue("GH");
        queue.Enqueue("HI");
        
        Console.WriteLine("Queue...");
        IEnumerator demoEnum = queue.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Console.WriteLine(demoEnum.Current);
        }
        
        Console.WriteLine("Is Queue synchronized? = " + queue.IsSynchronized);
        
        // सिंक्रोनाइज्ड वर्जन बनाएं
        Queue queue2 = Queue.Synchronized(queue);
        Console.WriteLine("Is Queue synchronized now? = " + queue2.IsSynchronized);
    } 
}

आउटपुट

Queue...
AB
BC
CD
DE
EF
FG
GH
HI
Is Queue synchronized? = False
Is Queue synchronized now? = True

महत्वपूर्ण बिंदु

  • डिफ़ॉल्ट रूप से Queue क्लास थ्रेड-सेफ नहीं होती (IsSynchronized = false)।
  • Queue.Synchronized(queue) मेथड एक थ्रेड-सेफ व्रैपर लौटाता है।
  • मल्टी-थ्रेडेड वातावरण में सिंक्रोनाइज्ड कतार का उपयोग करें।
  • जेनेरिक Queue<T> में IsSynchronized प्रॉपर्टी नहीं होती; इसके लिए मैन्युअल लॉकिंग आवश्यक है।

थ्रेड-सेफ कतार के लिए विकल्प

.NET 4.0+ में System.Collections.Concurrent.ConcurrentQueue<T> क्लास अंतर्निहित थ्रेड-सेफ्टी प्रदान करती है और इसे प्राथमिकता दी जाती है।

  1. - C# में Array.IsSynchronized प्रॉपर्टी क्या करती है?

    C# में Array.IsSynchronized प्रॉपर्टी Array.IsSynchronized एक बूलियन प्रॉपर्टी है जो इंगित करती है कि क्या एरे पर एक्सेस सिंक्रनाइज़्ड (थ्रेड-सेफ) है। मानक एरे के लिए यह हमेशा false लौटाती है। सिंटैक्स public bool IsSynchronized { get; } उदाहरण using System; using System.Collections.Generic; using

  1. - C# में Queue क्लास का Count गुण क्या है?

    Queue क्लास के एलिमेंट्स की संख्या जानने के लिए Count गुण का उपयोग करें। एलिमेंट्स को निम्न घोषणा की तरह सेट करें:Queue q = new Queue(); q.Enqueue(1); q.Enqueue(2); q.Enqueue(3); q.Enqueue(4);फिर एलिमेंट्स गिनने के लिए Count गुण का उपयोग करें:q.Countनिम्न उदाहरण Queue क्लास में Count गुण के साथ काम

  1. - पायथन में क्यू (Queue) लागू करना

    जब पायथन का उपयोग करके क्यू लागू करने की आवश्यकता होती है, तो एक क्यू क्लास बनाई जाती है, और तत्वों को जोड़ने और हटाने के लिए मेथड्स परिभाषित किए जाते हैं। क्लास का एक इंस्टेंस बनाया जाता है, और इन मेथड्स को इंस्टेंस का उपयोग करके कॉल किया जाता है और प्रासंगिक आउटपुट प्रदर्शित किया जाता है। उदाहरण