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
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 | Phương pháp | 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"); } }