Java中长时间运行的计划执行器
我开始学习Java并发特性,并在这里学习接口。我遇到了这样一个片段,它在一个小时内每10秒发出一声嘟嘟声:Java中长时间运行的计划执行器,java,scheduled-tasks,Java,Scheduled Tasks,我开始学习Java并发特性,并在这里学习接口。我遇到了这样一个片段,它在一个小时内每10秒发出一声嘟嘟声: import static java.util.concurrent.TimeUnit.*; class BeeperControl { private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); public void beepForAnH
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() { System.out.println("beep"); }
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}
}
导入静态java.util.concurrent.TimeUnit.*;
类蜂鸣器控制{
专用最终计划执行器服务计划程序=
Executors.newScheduledThreadPool(1);
公共空间{
最终可运行蜂鸣器=新可运行(){
public void run(){System.out.println(“beep”);}
};
最终计划的未来蜂鸣器手柄=
scheduleAtFixedRate(蜂鸣器,10秒,10秒);
scheduler.schedule(新的Runnable(){
public void run(){beeperHandle.cancel(true);}
},60*60,秒);
}
}
对于像我这样的新手来说,这似乎很容易,但我的问题是,我想要一个Java程序,永远每隔10秒读取一个MySql表。计划执行者是否是此类工作的最佳选择?若要永久运行,请取出代码以取消任务。若要永久运行,请取出代码以取消任务。是。为什么不呢?
ScheduledExecutorService
是您想要的,但是使用方法scheduleAtFixedRate()
或scheduleWithFixedDelay()
而不是schedule()
只需删除最后一个计划,它将取消任务,并且将永远运行。是的。为什么不呢?ScheduledExecutorService
是您想要的,但是使用方法scheduleAtFixedRate()
或scheduleWithFixedDelay()
而不是schedule()
只需删除最后一个计划即可取消任务,它将永远运行。