我正在尝试启动一个需要每秒执行一个任务的线程。 所以我从现在开始做的是在这段代码上循环:
// execute my task
..
lastScan.setTime(lastScan.getTime() + 1000);
long timeToSleep = (lastScan.getTime() - new Date().getTime());
try {
Thread.sleep(timeToSleep);
} catch (InterruptedException e) {
e.printStackTrace();
}
这行得通,但我想知道是否有更优雅、更安全的东西,例如当当前日期达到给定时间时唤醒我的线程的函数。
提前感谢您的建议。
最佳答案
尝试使用 ScheduledExecutorService :
ScheduledExecutorService es = Executors.newScheduledThreadPool(10); //number of threads
从那里开始,该类有不同的方法来传递 Runnable
对象,您可以在单独的线程中按定时延迟运行这些对象
关于java - 如何每秒唤醒一个线程,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085320/