获取ScheduledExecutorService 的执行次数
时间: 2023-10-13 19:14:59 浏览: 133
Java定时任务schedule和scheduleAtFixedRate的异同
获取ScheduledExecutorService的执行次数需要统计ScheduledFuture对象的完成次数。每次ScheduledExecutorService执行调度时,都会返回一个ScheduledFuture对象。如果ScheduledFuture对象完成了任务,则说明这个任务已经执行了一次。可以通过统计ScheduledFuture对象的完成次数来获取ScheduledExecutorService的执行次数。代码示例如下:
```java
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
ScheduledFuture<?> future = executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
int count = 0;
while (true) {
if (future.isDone()) {
count++;
future = executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
}
if (count >= 10) {
break;
}
}
```
上述代码中,首先创建一个ScheduledExecutorService对象和一个ScheduledFuture对象。然后,通过while循环和future.isDone()方法来统计ScheduledFuture对象的完成次数。当完成次数达到10次时,退出循环。
阅读全文