Trung BìnhJava iconJava

Future và CompletableFuture khác nhau thế nào?

Future đại diện cho kết quả tính toán bất đồng bộ. submit(Callable) trả Future; gọi get() để block đến khi có kết quả. Hạn chế: blocking get(), không chain được, xử lý exception khó. CompletableFuture (Java 8+) khắc phục: non-blocking, có thể chain operations (thenApply, thenAccept, thenCompose), xử lý exception (exceptionally, handle). Java 9+ bổ sung orTimeout(), completeOnTimeout().

Ví dụ: CompletableFuture.supplyAsync(() -> fetchData()).thenApply(data -> process(data)).thenAccept(System.out::println).

Java 21+: StructuredTaskScope là alternative hiện đại cho CompletableFuture chains — quản lý vòng đời task rõ ràng hơn và hoạt động tốt với Virtual Threads.

Xem toàn bộ Java cùng filter theo level & chủ đề con.

Mở danh sách Java