delayedExecutor() 메소드가 CompletableFuture 에 추가되었습니다. Java 9의 클래스. CompletableFuture delayedExecutor()의 두 가지 오버로드된 메서드를 정의합니다. :첫 번째 메소드는 기본 에서 Executor 객체를 반환합니다. 실행자 CompletableFuture 개체 개체는 지연 및 새 실행자 후에 작업을 실행하는 데 사용합니다. 객체는 작업 실행을 수행할 수 있지만 두 번째 메서드는 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