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

सी # में धागे

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

थ्रेड का जीवन चक्र तब शुरू होता है जब System.Threading.Thread क्लास का कोई ऑब्जेक्ट बनता है और थ्रेड समाप्त होने या निष्पादन पूरा होने पर समाप्त होता है।

एक धागे के जीवन चक्र में विभिन्न अवस्थाएँ निम्नलिखित हैं -

  • द अनस्टार्टेड स्टेट - यह वह स्थिति है जब थ्रेड का उदाहरण बनाया जाता है लेकिन प्रारंभ विधि को नहीं कहा जाता है।

  • द रेडी स्टेट - यह वह स्थिति है जब थ्रेड चलने के लिए तैयार होता है और CPU चक्र की प्रतीक्षा करता है।

  • चलने योग्य नहीं राज्य - एक थ्रेड निष्पादन योग्य नहीं है, जब

    • नींद के तरीके को कहा गया है
    • प्रतीक्षा विधि कहलाती है
    • I/O संचालन द्वारा अवरुद्ध
  • द डेड स्टेट - यह वह स्थिति है जब थ्रेड निष्पादन पूरा करता है या निरस्त हो जाता है।

निम्नलिखित एक उदाहरण है जिसमें दिखाया गया है कि एक धागा कैसे बनाया जाता है -

उदाहरण

using System;
using System.Threading;

namespace Demo {
   class Program {
      public static void ThreadFunc() {
         Console.WriteLine("Child thread starts");
      }

      static void Main(string[] args) {
         ThreadStart childref = new ThreadStart(ThreadFunc);
         Console.WriteLine("In Main: Creating the Child thread");
         Thread childThread = new Thread(childref);
         childThread.Start();
         Console.ReadKey();
      }
   }
}

आउटपुट

In Main: Creating the Child thread
Child thread starts

  1. थ्रेड में पायथन अपवाद को कैसे संभालें?

    दिए गए कोड को अपवाद को पकड़ने के लिए फिर से लिखा जाता है import sys import threading import time import Queue def thread(args1, stop_event, queue_obj): print "start thread" stop_event.wait(12) if not stop_event.is_set(): try: raise Exception("boom!") except Exception: queue_obj.p

  1. रूबी थ्रेड्स का उपयोग कैसे करें:ट्यूटोरियल को समझने में आसान

    रूबी में धागा क्या है? थ्रेड आपके रूबी प्रोग्राम को एक ही समय में कई काम करते हैं। जैसी चीजें : एकाधिक फ़ाइलें पढ़ना एकाधिक वेब अनुरोध को संभालना एकाधिक API कनेक्शन बनाना थ्रेड्स का उपयोग करने के परिणामस्वरूप, आपके पास एक बहु-थ्रेडेड रूबी प्रोग्राम होगा, जो चीजों को तेजी से पूरा करने में सक्षम

  1. रूबी में एसिंक्रोनस थ्रेड्स का परीक्षण

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