Sr. Không. | Phím | Nhóm chủ đề đã lên lịch | Người thực thi một chuỗi |
1 | Cơ bản | Tạo một nhóm luồng có thể lên lịch các lệnh chạy sau một khoảng thời gian nhất định hoặc thực thi định kỳ. | Các tác vụ được đảm bảo thực hiện tuần tự và không có nhiều hơn một tác vụ sẽ hoạt động tại bất kỳ thời điểm nào |
2 | Hàng đợi | Nó sử dụng Hàng đợi Trì hoãn để lưu trữ các tác vụ. Lên lịch cho nhiệm vụ dựa trên độ trễ thời gian. | Nó sử dụng hàng đợi chặn. |
3 | Thời gian tồn tại của chuỗi | Số luồng cần giữ trong nhóm, ngay cả khi chúng không hoạt động | Tạo lại chuỗi nếu bị chết vì tác vụ. |
4. | Kích thước nhóm luồng | Nó luôn chạy một luồng duy nhất. | Nhóm luồng có thể phát triển từ 0 luồng thành Integer.MAX_VALUE |
5. | Trường hợp Sử dụng | Chúng ta nên sử dụng fixedthreadpool, khi chúng ta muốn giới hạn tác vụ đồng thời | Loại nhóm này có thể được sử dụng khi bạn muốn đảm bảo rằng Task1 phải luôn chạy trước task2. |
Ví dụ về SchedisedThreadPool
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");
}
}
Ví dụ về 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");
}
}