কম্পিউটার টিউটোরিয়াল

C#-এ থ্রেড পুল তৈরি করা (Thread Pool)


থ্রেড পুল তৈরি করতে একাধিক ফাংশন তৈরি করে সেগুলো এক্সিকিউশনের জন্য কিউ (queue) করতে হয়।

প্রথমে একটি মেথড তৈরি করুন:

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

এভাবে আরও মেথড তৈরি করে ThreadPool.QueueUserWorkItem ব্যবহার করে কিউ করুন:

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));
}

সম্পূর্ণ উদাহরণ

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

নোট: আউটপুটের ক্রম প্রতিবার ভিন্ন হতে পারে কারণ থ্রেডগুলো সমান্তরাল রান করে।

  1. জাভা প্রোগ্রাম: দুটি আনসর্টেড অ্যারে থেকে সর্টেড মার্জড অ্যারে তৈরি

  2. পাইথনে দুটি আনসোর্টেড লিস্ট মার্জ করে সোর্টেড লিস্ট তৈরি করা

  3. দুটি আনসর্টেড লিস্ট থেকে সর্টেড মার্জড লিস্ট তৈরি করা (পাইথন)

  4. পাইথনে ৩D লিস্ট তৈরি করার প্রোগ্রাম