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

सी # में थ्रेड सिंक्रनाइज़ेशन

सिंक्रोनाइज़ेशन का उपयोग करके मल्टीथ्रेडेड एप्लिकेशन में संसाधनों तक पहुंच को सिंक्रोनाइज़ करें।

थ्रेड्स को सिंक्रोनाइज़ करने के लिए म्यूटेक्स

प्रक्रियाओं में धागे को सिंक्रनाइज़ करने के लिए एक म्यूटेक्स का उपयोग किया जा सकता है। एक समय में एक से अधिक थ्रेड द्वारा कोड के ब्लॉक के एक साथ निष्पादन को रोकने के लिए इसका उपयोग करें।

C# लॉक स्टेटमेंट का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि कोड का एक ब्लॉक अन्य थ्रेड्स द्वारा बिना किसी रुकावट के चलता है। किसी दिए गए ऑब्जेक्ट के लिए कोड ब्लॉक की अवधि के लिए एक पारस्परिक-बहिष्करण लॉक प्राप्त किया जाता है।

एक लॉक स्टेटमेंट एक ऑब्जेक्ट को तर्क के रूप में प्राप्त करता है। "लॉक" को दिया गया पैरामीटर संदर्भ प्रकार के आधार पर एक ऑब्जेक्ट होना चाहिए -

public class Demo {
   private System.Object myLock = new System.Object();
   public void Process() {
      lock (myLock) {
      }
   }
}

C# में Mutex क्लास एक सिंक्रोनाइज़ेशन प्रिमिटिव है जिसका उपयोग इंटरप्रोसेस सिंक्रोनाइज़ेशन के लिए भी किया जा सकता है।

आइए देखें कि एक नया म्यूटेक्स कैसे बनाया जाता है -

private static Mutex m = new Mutex();

  1. सी # प्रोग्राम एक साधारण धागा बनाने के लिए

    एक थ्रेड बनाने के लिए, मैंने एक फंक्शन बनाया है - public void myThread() {    for (int i = 0; i < 3; i++) {       Console.WriteLine("My Thread");    } } उपरोक्त फ़ंक्शन को थ्रेड बनाने के लिए कहा जाता है और एक नया थ्रेडस्टार्ट प्रतिनिधि बनाया जाता है -

  1. सी # प्रोग्राम एक थ्रेड को मारने के लिए

    पहले एक थ्रेड बनाएं और उसे शुरू करें - // new thread Thread thread = new Thread(c.display); thread.Start(); अब थ्रेड प्रदर्शित करें और थ्रेड के कार्य को रोकने के लिए स्टॉप फ़ंक्शन सेट करें - public void display() {    while (!flag) {       Console.WriteLine("It's W

  1. जावा में ऑब्जेक्ट लेवल लॉक बनाम क्लास लेवल लॉक?

    दोनों ऑब्जेक्ट लेवल लॉक और कक्षा स्तरीय स्थान k का उपयोग सिंक्रनाइज़ेशन . प्राप्त करने के लिए किया जाता है एक बहु-थ्रेडेड अनुप्रयोग में तंत्र। ऑब्जेक्ट लेवल लॉक Java की प्रत्येक वस्तु में एक अद्वितीय लॉक होता है . यदि कोई थ्रेड सिंक्रनाइज़ की गई विधि . को निष्पादित करना चाहता है किसी दिए गए ऑब्जेक