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

C# में थ्रेड पूल बनाना

थ्रेड पूल प्री-क्रिएटेड थ्रेड्स का एक संग्रह है जो बैकग्राउंड में कार्यों को निष्पादित करने के लिए पुन: उपयोग किए जाते हैं। यह थ्रेड बनाने और नष्ट करने के ओवरहेड को कम करता है।

मुख्य अवधारणा

  • ThreadPool.QueueUserWorkItem मेथड का उपयोग करके कार्यों को कतार में लगाया जाता है।
  • प्रत्येक कार्य एक WaitCallback डेलीगेट होता है।
  • थ्रेड पूल स्वचालित रूप से थ्रेड्स की संख्या प्रबंधित करता है।

उदाहरण: थ्रेड पूल बनाना

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

class Demo {
    public void one(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("One executed");
        }
    }

    public void two(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("Two executed");
        }
    }

    public void three(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("Three executed");
        }
    }

    static void Main() {
        Demo d = new Demo();
        for (int i = 0; i < 3; i++) {
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.one));
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.two));
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.three));
        }
        Console.Read();
    }
}

आउटपुट (नमूना)

Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
One executed
One executed
One executed
One executed
One executed
Two executed
Two executed
Three executed
Three executed
Two executed
One executed
Three executed
Two executed
Three executed
One executed
One executed
One executed

नोट

आउटपुट हर बार अलग हो सकता है क्योंकि थ्रेड्स समानांतर में चलते हैं और उनका निष्पादन क्रम OS शेड्यूलर पर निर्भर करता है।

थ्रेड पूल के लाभ

  • थ्रेड निर्माण/विनाश का ओवरहेड कम होता है।
  • सिस्टम संसाधनों का बेहतर प्रबंधन।
  • शॉर्ट-लिव्ड ऑपरेशन्स के लिए आदर्श।
  • Task.Run() (आधुनिक दृष्टिकोण) आंतरिक रूप से थ्रेड पूल का उपयोग करता है।

सावधानियां

  • लंबे समय तक चलने वाले कार्यों के लिए थ्रेड पूल उपयुक्त नहीं है।
  • थ्रेड पूल थ्रेड्स बैकग्राउंड थ्रेड्स होते हैं।
  • अपवादों को सावधानी से संभालें।
  1. - Python प्रोग्राम: दो अनसॉर्टेड सूचियों का सॉर्टेड मर्ज्ड सूची बनाएं

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो दो सूचियों को मर्ज करता है और परिणामी सूची को सॉर्टेड क्रम में प्रिंट करता है। आइए कुछ उदाहरण देखें।इनपुट: list_1 = [1, 3, 2, 0, 3] list_2 = [20, 10, 23, 43, 56, -1] आउटपुट: [-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]इनपुट: list_1 = [hafeez, aslan] list_2 =

  1. - पायथन प्रोग्राम: दो अनसॉर्टेड लिस्ट का सॉर्टेड मर्ज्ड लिस्ट बनाना

    यहां दो यूजर इनपुट लिस्ट दी गई हैं, दो लिस्ट्स के एलिमेंट्स अनसॉर्टेड हैं। हमारा कार्य इन दो अनसॉर्टेड ऐरे को मर्ज करना है और उसके बाद लिस्ट को सॉर्ट करना है।उदाहरणInput: A[] = {100, 50, 150} B[] = {200, 30, 20} Output: Merge List: {20, 30, 50, 100, 150, 200}एल्गोरिदमचरण 1: पहले दो यूजर इनपुट लिस्ट

  1. - 3D सूची बनाने के लिए पायथन प्रोग्राम

    समस्या विवरण 3D सूची का अर्थ 3D सरणी होता है। इस प्रोग्राम में हम पूर्णांक तत्वों के साथ 3D सरणी बनाते हैं। उदाहरण इनपुट: 3×3×2 [[1,1,1],[2,2,2],[3,3,3]], [[4,4,4],[5,5,5],[6,6,6]] एल्गोरिदम 3D सूची का क्रम दिया गया है। फॉर लूप का उपयोग करके सूची बनाएं और डेटा प्रिंट करें। उदाहरण कोड # 3D सूची