CompletableFuture如何延迟执行代码?
时间: 2024-04-11 19:25:19 浏览: 394
java代码-测试延时的效果
CompletableFuture类是Java 8中引入的一个强大的异步编程工具,它提供了一种简洁的方式来处理异步任务。要延迟执行代码,CompletableFuture类提供了两种方法:
1. 使用`CompletableFuture.delayedExecutor(long delay, TimeUnit unit)`方法可以创建一个延迟执行的Executor。该方法接受两个参数:延迟时间和时间单位。例如,以下代码将在延迟1秒后执行代码块:
```java
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 延迟执行的代码块
}, CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS));
```
2. 使用`CompletableFuture.delayedExecutor(long delay, TimeUnit unit, Executor executor)`方法可以创建一个使用指定Executor的延迟执行器。该方法接受三个参数:延迟时间、时间单位和执行器。例如,以下代码将在延迟1秒后使用指定的线程池执行代码块:
```java
Executor executor = Executors.newFixedThreadPool(10);
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 延迟执行的代码块
}, CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS, executor));
```
这些方法可以用于延迟执行代码块,使其在指定的延迟时间后执行。你可以根据需要选择合适的方法来延迟执行代码。
阅读全文