scheduleAtFixedRate使用多任务异步调用示例
时间: 2023-07-11 20:27:09 浏览: 223
timerTask定时任务使用java代码操作svn
3星 · 编辑精心推荐
以下是一个使用多任务异步调用的示例代码:
```java
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ScheduleAtFixedRateMultiTaskAsyncExample {
public static void main(String[] args) {
// 定义多个任务
TimerTask task1 = new TimerTask() {
@Override
public void run() {
System.out.println("Task 1 executed!");
}
};
TimerTask task2 = new TimerTask() {
@Override
public void run() {
System.out.println("Task 2 executed!");
}
};
TimerTask task3 = new TimerTask() {
@Override
public void run() {
System.out.println("Task 3 executed!");
}
};
// 定义线程池
ExecutorService executor = Executors.newFixedThreadPool(3);
// 定义定时任务
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
executor.execute(task1);
executor.execute(task2);
executor.execute(task3);
}
}, 0, 1000);
// 等待10秒后结束程序
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
timer.cancel();
executor.shutdown();
}
}
```
在这个示例中,首先定义了三个TimerTask对象作为多个定时任务。然后创建一个ExecutorService对象作为线程池,用于异步执行多个定时任务。接着创建一个Timer对象,并使用scheduleAtFixedRate方法来定期执行任务。在定时任务的run方法中,使用线程池异步执行多个任务。最后,在程序运行10秒后,取消定时任务和线程池。
阅读全文