0
我開始使用Java併發功能,並在此處的界面ScheduledExecutorService
處。我碰到這個片段,使蜂鳴每10秒爲一小時:Java中的長時間運行調度執行程序
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程序,讀取一個MySQL表每10秒永遠。計劃的執行者是這類工作的最佳選擇嗎?
是的。爲什麼不呢? – 2013-05-06 17:25:45
'ScheduledExecutorService'就是你想要的,但是用方法'scheduleAtFixedRate()'或'scheduleWithFixedDelay()'而不是'schedule()' – 2013-05-06 17:32:16
只需刪除最後一個時間表,它將取消任務,並且它將永遠運行。 – assylias 2013-05-06 17:35:25