Phương thức completeOnTimeout() của đối tượng CompletableFuture trong Java

Phương thức này được giới thiệu từ Java 9.

Phương thức này dùng để: nếu sau khoảng thời gian timeout mà tác vụ của chúng ta vẫn chưa xử lý xong, thay vì throw ra exception TimeoutException như phương thức orTimeout(), code của chúng ta sẽ trả về giá trị mà chúng ta truyền vào trong phương thức này.

Ví dụ sau mình muốn tính tổng của hai số và mình muốn nó hoàn thành trong 1s, nhưng bởi vì trong quá trình xử lý tác vụ, mình cho sleep 3s:

nên kết quả sẽ trả về giá trị mà mình đã truyền vào trong phương thức completeOnTimeout(), ở đây là 0:

Phương thức completeOnTimeout() của đối tượng CompletableFuture trong Java
Nếu bây giờ mình tăng khoảng thời gian timeout lên 4s:

thì kết quả sẽ là:

Phương thức completeOnTimeout() của đối tượng CompletableFuture trong Java

 

Add Comment