我想使用ScheduledExecutorService
以预定方式导出一些数据。
在下面的代码中,我在2个不同的时间间隔内调用了2个不同的任务。当用户创建多个计划以导出多个数据(不同的报告)时,将有可能在1 ScheduledExecutorService
中安排多个任务。
使用单个ScheduledExecutorService
运行多个任务是否安全?
如果用户删除了特定的日程安排,是否可以停止其中一项任务(例如service.scheduleAtFixedRate(runnable2, 0, 10, TimeUnit.SECONDS);
)?
public static void main(String... args) {
Runnable runnable = new Runnable() { public void run() {
// task to run goes here
System.out.println("Every 5 sec: "+ new java.util.Date());
}
};
Runnable runnable2 = new Runnable() {
public void run() {
// task to run goes here
System.out.println("Every 10 sec: "+ new java.util.Date());
}
};
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable, 0, 5, TimeUnit.SECONDS);
service.scheduleAtFixedRate(runnable2, 0, 10, TimeUnit.SECONDS);
}