Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa nhóm ScheduleThread và Single Thread Executor.


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