Sr. না। | কী | নির্ধারিত থ্রেড পুল | একক থ্রেড এক্সিকিউটর |
1 | বেসিক | একটি থ্রেড পুল তৈরি করে যা প্রদত্ত বিলম্বের পরে চালানোর জন্য বা পর্যায়ক্রমে চালানোর জন্য কমান্ড নির্ধারণ করতে পারে। | কাজগুলি ক্রমানুসারে চালানোর নিশ্চয়তা রয়েছে এবং যেকোন সময়ে একটির বেশি কাজ সক্রিয় থাকবে না |
2 | সারি | এটি কার্য সঞ্চয় করতে বিলম্ব সারি ব্যবহার করে। সময়ের বিলম্বের উপর ভিত্তি করে কাজটি নির্ধারণ করুন। | এটি ব্লকিং কিউ ব্যবহার করে। |
3 | থ্রেড লাইফটাইম | টি পুলে রাখার জন্য থ্রেডের সংখ্যা, এমনকি যদি সেগুলি নিষ্ক্রিয় থাকে | টাস্কের কারণে মারা গেলে থ্রেড পুনরায় তৈরি করুন। |
4. | থ্রেড পুলের আকার | এতে সর্বদা একটি একক থ্রেড চলছে। | থ্রেড পুল শূন্য থ্রেড থেকে পূর্ণসংখ্যা পর্যন্ত বৃদ্ধি পেতে পারে। MAX_VALUE |
5. | কেস ব্যবহার করুন৷ | আমাদের ফিক্সড থ্রেডপুল ব্যবহার করা উচিত, যখন আমরা একযোগে কাজ সীমিত করতে চাই | এই ধরনের পুল ব্যবহার করা যেতে পারে যখন আপনি নিশ্চিত করতে চান যে Task1 সবসময় টাস্ক2-এর আগে চালানো উচিত। |
SeduledThreadPool-এর উদাহরণ
public class ScheduledThreadPoolExample {
public static void main(String args[]) {
ScheduledExecutorService services = Executors.newScheduledThreadPool(10);
services.schedule(new Task(), 10, TimeUnit.SECONDS);
services.scheduleAtFixedRate(new Task(), 15, 10, TimeUnit.SECONDS);
//(new Thread(new Main())).start();
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}
SingleThreadExecutor এর উদাহরণ
public class Main {
public static void main(String args[]) {
ExecutorService services = Executors.newSingleThreadExecutor();
Future<?> future = services.submit(new Task());
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}