एक थ्रेड को प्रोग्राम के निष्पादन पथ के रूप में परिभाषित किया जाता है। प्रत्येक थ्रेड कंट्रोल फ्लो का एक अनूठा पथ परिभाषित करता है।
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 से हल)
- डेडलॉक्स
- थ्रेड सिंक्रोनाइजेशन जटिलता