এক থ্রেড হলো একটি প্রোগ্রামের এক্সিকিউশন পাথ। প্রতিটি থ্রেড একটি уникал ফ্লো অফ কন্ট্রোল ডিফাইন করে। আপনার অ্যাপ্লিকেশন যদি জটিল এবং সময়সাপেক্ষ অপারেশন জড়িত থাকে, তবে ভিন্ন এক্সিকিউশন পাথ বা থ্রেড সেট করা কার্যকর হয়, যেখানে প্রতিটি থ্রেড একটি নির্দিষ্ট কাজ সম্পাদন করে।
এক থ্রেডের লাইফ সাইкл শুরু হয় System.Threading.Thread ক্লাসের অবজেক্ট তৈরি হলে এবং শেষ হয় থ্রেড টার্মিনেট বা এক্সিকিউশন কমপ্লিট হলে।
এক থ্রেডের লাইফ সাইকলের বিভিন্ন স্টেটগুলো:
The Unstarted State — থ্রেডের ইনস্ট্যান্স তৈরি হয়েছে কিন্তু
Startমেথড কল করা হয়নি এমন অবস্থা।The Ready State — থ্রেড রান করার জন্য প্রস্তুত এবং CPU সাইকেলের জন্য অপেক্ষা করছে এমন অবস্থা।
The Not Runnable State — থ্রেড এক্সিকিউটেবল নয় যখন:
Sleepমেথড কল করা হয়েছেWaitমেথড কল করা হয়েছে- I/O অপারেশন দ্বারা ব্লক করা হয়েছে
The Dead State — থ্রেড এক্সিকিউশন কমপ্লিট হয়েছে বা অ্যাবোর্ট করা হয়েছে এমন অবস্থা।
থ্রেড তৈরি করার উদাহরণ:
উদাহরণ
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