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

C# में मल्टीथ्रेडिंग

एक थ्रेड को प्रोग्राम के निष्पादन पथ के रूप में परिभाषित किया जाता है। प्रत्येक थ्रेड कंट्रोल फ्लो का एक अनूठा पथ परिभाषित करता है।

C# में, System.Threading.Thread क्लास का उपयोग थ्रेड्स के साथ काम करने के लिए किया जाता है। यह मल्टीथ्रेडेड एप्लिकेशन में व्यक्तिगत थ्रेड्स बनाने और एक्सेस करने की अनुमति देता है। एक प्रक्रिया में निष्पादित होने वाला पहला थ्रेड मुख्य थ्रेड कहलाता है।

थ्रेड लाइफसाइकिल स्टेट्स

  • अनस्टार्टेड स्टेट - थ्रेड इंस्टेंस बना लेकिन Start() नहीं कॉल किया गया
  • रेडी स्टेट - थ्रेड चलने के लिए तैयार, CPU साइकिल का इंतजार
  • नॉट रनेबल स्टेट - Sleep(), Wait(), या I/O ब्लॉकिंग के कारण निष्पादन योग्य नहीं
  • डेड स्टेट - निष्पादन पूरा या अबॉर्टेड

थ्रेड बनाने का उदाहरण

using System;
using System.Threading;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            Thread th = Thread.CurrentThread;
            th.Name = "MainThread";
            Console.WriteLine("यह है {0}", th.Name);
            Console.ReadKey();
        }
    }
}

आउटपुट

यह है MainThread

मल्टीथ्रेडिंग के लाभ:

  • उत्तरदायी UI (लंबे कार्य बैकग्राउंड में)
  • बहु-कोर CPU का बेहतर उपयोग
  • समानांतर प्रसंस्करण

चुनौतियां:

  • रेस कंडीशन्स (lock, Monitor, Mutex से हल)
  • डेडलॉक्स
  • थ्रेड सिंक्रोनाइजेशन जटिलता
  1. 6G: यह क्या है और कब उम्मीद करें 6G: यह क्या है और कब उम्मीद करें

    दुनिया भर में 5G नेटवर्क अभी भी तैनात किए जा रहे हैं और दुनिया के कई क्षेत्र अभी भी 4G और यहां तक कि 3G नेटवर्क का उपयोग कर रहे हैं, ऐसे में 6G शब्द का इस्तेमाल थोड़ा जल्दी लगता है। आखिरकार, जब अपेक्षाकृत कम लोग 5G नेटवर्क का उपयोग कर सकते हैं, तो 6G नेटवर्क का हमारे लिए क्या उपयोग है? उस ने कहा, प्

  1. - C# में असर्शन (Assertions)

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

  1. - मल्टीथ्रेडिंग में Java थ्रेड प्राथमिकता

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