scheduleAtFixedRate使用异步调用示例
时间: 2023-07-11 19:27:08 浏览: 91
scheduleAtFixedRate方法可以用来定期执行某个任务,可以通过异步调用来实现。
以下是一个使用异步调用的示例代码:
```java
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ScheduleAtFixedRateAsyncExample {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
// 执行任务
System.out.println("Task executed!");
}
};
ExecutorService executor = Executors.newSingleThreadExecutor();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
executor.execute(task);
}
}, 0, 1000);
// 等待10秒后结束程序
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
timer.cancel();
executor.shutdown();
}
}
```
在这个示例中,首先定义了一个TimerTask对象作为定时任务。然后创建一个ExecutorService对象作为线程池,用于异步执行定时任务。接着创建一个Timer对象,并使用scheduleAtFixedRate方法来定期执行任务。在定时任务的run方法中,使用线程池异步执行任务。最后,在程序运行10秒后,取消定时任务和线程池。
阅读全文