delayedExecutor() মেথড জাভা ৯-এ CompletableFuture ক্লাসে যোগ করা হয়েছে। CompletableFuture দুটি ওভারলোডেড delayedExecutor() মেথড ডিফাইন করে: প্রথম মেথড একটি Executor অবজেক্ট রিটার্ন করে ডিফল্ট Executor অবজেক্ট থেকে যা CompletableFuture অবজেক্ট ব্যবহার করে টাস্ক এক্সিকিউট করতে 딜েয়ের পর এবং নিউ Executor অবজেক্ট টাস্ক এক্সিকিউশন করতে পারে। দ্বিতীয় মেথডও একটি Executor অবজেক্ট রিটার্ন করে কিন্তু এটি একটি Executor অবজেক্ট যা আমরা এই মেথডে পাস করি 딜েয়ের পর এবং নিউ Executor অবজেক্টও টাস্ক এক্সিকিউশন করতে পারে।
সিনট্যাক্স
public static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor) public static Executor delayedExecutor(long delay, TimeUnit unit)
উদাহরণ
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
public class DelayedExecutorMethodTest {
public static void main(String args[]) throws InterruptedException, ExecutionException {
CompletableFuture<String> future = new CompletableFuture<>();
future.completeAsync(() -> {
try {
System.out.println("inside future: processing data...");
return "tutorialspoint.com";
} catch(Throwable e) {
return "not detected";
}
}, CompletableFuture.delayedExecutor(3, TimeUnit.SECONDS))
.thenAccept(result -> System.out.println("accept: " + result));
for(int i = 1; i <= 5; i++) {
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println("running outside... " + i + " s");
}
}
}
আউটপুট
running outside... 1 s running outside... 2 s inside future: processing data... accept: tutorialspoint.com running outside... 3 s running outside... 4 s running outside... 5 s