class BeeperControl {
private final static ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public static void main(String[] args){
beepForAnHour();
}
public static 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);
}
}
此代码每10秒钟发出一声哔哔声。我如何永远每10分钟发出一声哔哔声。因为它应该永远每隔10分钟发出一次哔哔声(不只是一个小时)
答案 0 :(得分:3)
您明确安排了取消任务。如果您不想取消,请不要安排取消任务。
答案 1 :(得分:1)
只需删除执行取消的第二个计划。
答案 2 :(得分:0)
我建议:
public void run() {
while(true) {
System.out.println(“beep”);
Thread.sleep(10000);
}
}
+的;
- 的: - 你必须捕获InterruptedException
如果你想停止:
myThread.interrupt();
停止,再次启动它有点困难,最好的选择是创建一个新线程(完全相同)。信息在这里:How to start/stop/restart a thread in Java?