Tìm hiểu Thread và Thread pool trong Java phần 4

1 min read

Ở các phần trước chúng ta đã cùng nhau tìm hiểu về ThreadThreadpool cũng như cách implement chúng trong java. Ở phần này chúng ta sẽ tìm hiểu một phần quan trọng không kém trong lập trình đa luồng đó là Future.

Future và Executor

Future là một lớp trong Java đại diện cho kết quả của một tác vụ bất đồng bộ. Nó cho phép bạn truy cập kết quả của tác vụ sau khi nó hoàn thành, hoặc đợi cho đến khi nó hoàn thành.

Trong khi đó Executor là một giao diện trong Java cung cấp một cách để thực thi các tác vụ bất đồng bộ. Nó cho phép bạn gửi các tác vụ đến một nhóm luồng để thực thi và quản lý việc thực thi của chúng.

So sánh Future và Executor

Tính năngFutureExecutor
Mục đíchĐại diện cho kết quả của một tác vụ bất đồng bộThực thi các tác vụ bất đồng bộ
LoạiLớpGiao diện
Khả năng truy cập kết quảCho phép truy cập kết quả sau khi hoàn thànhKhông cung cấp khả năng truy cập kết quả
Quản lý luồngKhông quản lý luồngQuản lý luồng thông qua nhóm luồng
Sử dụngPhù hợp cho các tác vụ cần truy cập kết quảPhù hợp cho các tác vụ không cần truy cập kết quả
So sánh Future và Executor
Future vs Executor

Ví dụ trong java

Future

Future<String> future = executorService.submit(() -> {
    return "Hello, world!";
});

String result = future.get();

System.out.println(result); // "Hello, world!"

Executor

executorService.execute(() -> {
    System.out.println("Hello, world!");
});

Kết luận

  • Future và Executor là hai công cụ quan trọng để làm việc với lập trình đa luồng trong Java.
  • Future cho phép bạn truy cập kết quả của một tác vụ bất đồng bộ, trong khi Executor cho phép bạn thực thi các tác vụ bất đồng bộ và quản lý việc thực thi của chúng.
  • Lựa chọn sử dụng Future hay Executor phụ thuộc vào nhu cầu cụ thể của bạn.

Reference:

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html

Callable and Future in Java – Javatpoint

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

One Reply to “Tìm hiểu Thread và Thread pool trong Java phần 4”

Leave a Reply

Your email address will not be published. Required fields are marked *