উভয়ই বা টাইমআউট()৷ এবং completeOnTimeOut() পদ্ধতিগুলি সম্পূর্ণ ভবিষ্যত -এ সংজ্ঞায়িত করা হয়েছে ক্লাস এবং এই দুটি পদ্ধতি জাভা 9 এ চালু করা হয়েছে। orTimeout() পদ্ধতিটি নির্দিষ্ট করার জন্য ব্যবহার করা যেতে পারে যে যদি একটি প্রদত্ত কাজ নির্দিষ্ট সময়ের মধ্যে সম্পূর্ণ না হয়, তাহলে প্রোগ্রামটি কার্যকর করা বন্ধ করে দেয় এবং TimeoutException ফেলে দেয়। যেখানে completeOnTimeOut() পদ্ধতিটি সম্পূর্ণ ভবিষ্যত সম্পূর্ণ করে প্রদত্ত মান সহ। যদি না হয়, প্রদত্ত সময়সীমার আগে এটি সম্পূর্ণ হয়৷
orTimeout()
এর জন্য সিনট্যাক্সpublic CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
উদাহরণ
import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class OrTimeoutMethodTest { public static void main(String args[]) throws InterruptedException { int a = 10; int b = 15; CompletableFuture.supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .orTimeout(4, TimeUnit.SECONDS) .whenComplete((result, exception) -> { System.out.println(result); if(exception != null) exception.printStackTrace(); }); TimeUnit.SECONDS.sleep(10); } }
আউটপুট
25
completeOnTimeOut()
এর জন্য সিনট্যাক্সpublic CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
উদাহরণ
import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class CompleteOnTimeOutMethodTest { public static void main(String args[]) throws InterruptedException { int a = 10; int b = 15; CompletableFuture.supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .completeOnTimeout(0, 4, TimeUnit.SECONDS) .thenAccept(result -> System.out.println(result)); TimeUnit.SECONDS.sleep(10); } }
আউটপুট
25