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

Sự khác biệt giữa Executor và ExecutorServices trong Java

Cả hai giao diện Executor và ExecutorServices đều là một phần của khung Executor. Nó được phát hành với Java 5.

Trong java, hoạt động tạo luồng rất tốn kém, vì vậy chúng ta nên sử dụng lại luồng có sẵn thay vì bắt đầu một luồng mới mọi lúc và chúng ta có thể đạt được điều tương tự bằng cách sử dụng khung công tác Executor.

Khung thực thi sử dụng nhóm luồng để thực hiện song song tác vụ giúp tối ưu hóa thời gian phản hồi và sử dụng tài nguyên. Nó cung cấp bốn loại nhóm luồng tích hợp -

  • Nhóm chủ đề cố định
  • Nhóm chuỗi lưu trữ trong bộ nhớ cache
  • Nhóm chủ đề đã lên lịch
  • Người thực thi chuỗi đơn
Phương pháp
Sr. Không. Phím Người thừa hành ExecutorServices
1
Cơ bản
Đây là giao diện mẹ
Nó mở rộng Giao diện Người thực thi
2

Nó có phương thức execute ()
Nó có phương thức submit ()
3
Loại trả lại
Nó không trả về bất cứ thứ gì.
Nó trả về đối tượng tương lai.
4.
Runnable / Callable
Nó chấp nhận đối tượng có thể chạy được.
Nó chấp nhận cả có thể chạy và có thể gọi được

Ví dụ về ExecutorService

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

Ví dụ về Executor

public class Main {
   public static void main(String args[]) {
      Executor executor = Executors.newSingleThreadExecutor();
      executor.execute(new Task());
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}