Thread Creation and Management In Hindi

Thread Creation and Management In Hindi

सी# प्रोग्रामिंग लैंग्वेज में, थ्रेड क्रिएशन और थ्रेड मैनेजमेंट को कई प्रोसेस को फॉलो करके किया जाता है. सी# प्रोग्रामिंग में प्रोग्रामर जरूरत के अनुसार कई प्रकार के थ्रेड क्रिएट और कण्ट्रोल कर सकता है, जैसे कि थ्रेड क्लास, टास्क क्लास, एसिंक्रोनस प्रोग्रामिंग के लिए और थ्रेड पूलिंग मैकेनिज्म का जरूरत के अनुसार उपयोग करना होता है।

Thread Creation and Management In Hindi

So, let’s understand thread creation and thread management in C# programming language better.

Thread creation in C# programming.

सी# प्रोग्रामिंग लैंग्वेज में, थ्रेड आपको थ्रेड क्लास थ्रेड क्रिएशन और मैनेजमेंट में डायरेक्ट कण्ट्रोल प्रोवाइड करता है।

Creating a basic thread in C# programming language.

सी# प्रोग्रामिंग लैंग्वेज में थ्रेड क्रिएट करने के लिए, आप System.Threading नामस्थान से थ्रेड क्लास को यूज़ करते हैं।

Thread creation example in basic C# programming language.

using System;

using System.Threading;

class Program

{

    // Here Method to be executed by the thread

    static void Displayinfo()

    {

        Console.WriteLine(“\n This Is A Simple C# Program Thread”);

    }

    static void Main()

    {

        // Let Create a new thread and start it

        Thread thread = new Thread(Displayinfo);

        thread.Start(); // it Start the thread

        // It Wait for the thread to finish execution

        thread.Join();

    }

}         

Here in the above example.

हम एक क्लास मेथड Displayinfo को डिफाइन करते हैं. जिसको थ्रेड के द्वारा एक्सेक्यूट किया जाएगा।

जहा टारगेट मेथड (Displayinfo) के साथ एक थ्रेड ऑब्जेक्ट क्रिएट किया गया है, और इसके बाद थ्रेड एक्सेक्यूशन स्टार्ट करने के लिए Start() क्लास मेथड को कॉल किया जाता है।

जहा Join() क्लास मेथड मैन थ्रेड को तब तक ब्लॉक करती है, जब तक कि क्रिएट किया गया थ्रेड अपना टास्क कम्पलीट नहीं कर लेता।

Thread Pooling in C# Programming Language.

सी# प्रोग्रामिंग लैंग्वेज में थ्रेड को मैन्युअल रूप से क्रिएट और मैनेज करने के बजाय, आप थ्रेड मैनेजमेंट के लिए थ्रेडपूल क्लास का उपयोग कर सकते हैं. स्पेशल्ली कुछ पर्टिकुलर कंडीशन में जहाँ आपको लार्ज नंबर्स में शार्ट लाइव टास्क एक्सेक्यूट करने की आवश्यकता हो।

Example of ThreadPool in C# Programming Language.

using System;

using System.Threading;

class Program

{

    // Here This Method to be execute by the thread pool

    static void Displayinfo(object state)

    {

        Console.WriteLine(“\n This Is The Simple Thread Pool Example”);

    }

    static void Main()

    {

        // It Queue a task to the ThreadPool

        ThreadPool.QueueUserWorkItem(Displayinfo);

        // Let the main thread sleep so the background thread can run

        Thread.Sleep(999);

    }

}

यहाँ थ्रेडपूल.क्यूयूयूजरवर्कआइटम() क्लास मेथड का उपयोग थ्रेड पूल थ्रेड द्वारा एक्सेक्यूट की जाने वाली मेथड को कतारबद्ध करता है

यहाँ Displayinfo क्लास मेथड पूल से उपलब्ध थ्रेड द्वारा एक्सेक्यूट की जाएगी।

यहाँ थ्रेड.स्लीप(999) का उपयोग मैन थ्रेड को स्टॉप करने में किया जाता है, जिससे प्रोग्राम के एग्जिट से पहले बैकग्राउंड थ्रेड टर्मिनेट हो जाता है।

Handling Thread Cancellation in C# Programming Language.

सी# प्रोग्रामिंग लैंग्वेज में थ्रेड या टास्क को उसके टास्क को कम्पलीट करने से पहले कैंसिल करने की जरूरत हो सकती है। यहाँ सी# प्रोग्रामिंग लैंग्वेज आपको कोआपरेटिव कैंसलेशन का सपोर्ट करने के लिए C# कैंसिलटोकन मैकेनिज्म प्रोवाइड करता है।

Task Cancellation Example in C# Programming Language.

using System;

using System.Threading;

using System.Threading.Tasks;

class Program

{

    static async Task TestTask(CancelToken token)

    {

        for (int p = 0; p < 10; p++)

        {

            if (token.IsCancellationRequested)

            {

                Console.WriteLine(“\n The Task Is Cancelled.”);

                return;

            }

            Console.WriteLine($”\n The Task Is Ativelly Running {p}”);

            await Task.Delay(400);

        }

    }

    static async Task Main()

    {

        CancelTokenSource cts = new CancelTokenSource();

        Task task = TestTask(cts.Token);

        // Cancel the task after 2 seconds

        await Task.Delay(1800);

        cts.Cancel();

        await task;

    }

}

कैंसिलटोकनसोर्स हमें टास्क को कैंसिल करने का रिक्वेस्ट करने की परमिशन देता है। टास्क यह देखने के लिए समय-समय पर कैंसिलटोकन को टेस्ट करता है कि उसे जल्दी एग्जिट करना चाहिए या नहीं।

Thread Safety Considerations in C# Programming Language.

सी# प्रोग्रामिंग लैंग्वेज में थ्रेड्स का मैनेजमेंट करते समय, कुछ बेसिक थ्रेड-सिक्योरिटी रिलेटेड कन्सिडरेशंस को जरूर फॉलो करे.

  • Race condition – सी# प्रोग्रामिंग लैंग्वेज में कई थ्रेड्स शेयर्ड रिसोर्सेज एक साथ एक्सेस करते हैं।
  • Deadlock – सी# प्रोग्रामिंग लैंग्वेज में थ्रेड्स एक दूसरे के लिए रिसोर्सेज को रिलीज़ करने के लिए इंडेफिनिट टाइम तक वेट करते हैं।
  • Thread starvation – कुछ पर्टिकुलर कंडीशन जहाँ थ्रेड्स को प्रायोरिटी या लॉकिंग प्रोब्लेम्स के कारण पर्याप्त CPU रियलटाइम नहीं मिल रहा है।

Thread Creation Management in C# Programming Language Conclusion.

  • सी# प्रोग्रामिंग लैंग्वेज में, थ्रेड क्रिएशन और मैनेजमेंट कई मैकेनिज्म को फॉलो करके किया जा सकता है.
  • सी# प्रोग्रामिंग लैंग्वेज में अधिक प्रोग्राम कण्ट्रोल के लिए थ्रेड क्लास का उपयोग करके मैन्युअल थ्रेड क्रिएट किया जाता है।
  • सी# प्रोग्रामिंग लैंग्वेज में स्माल टास्क को एक्सेक्यूट करते समय थ्रेड्स के अधिक एफ्फिसिएंट उपयोग के लिए थ्रेडपूल का उपयोग किया जाता है।
  • सी# प्रोग्रामिंग लैंग्वेज में सरल एसिंक्रोनस प्रोग्रामिंग के लिए टास्क पैरेलल लाइब्रेरी (TPL) का उपयोग करे।
  • सी# लैंग्वेज में रेस कंडीशन और डेडलॉक जैसी प्रोब्लेम्स को अवॉयड करने के लिए लॉक, सेमाफोर और अन्य थ्रेड सिंक्रोनाइज़ेशन टूल का उपयोग करके सिंक्रोनाइज़ेशन किया जाता है।