cle*_*tus 83
在Java 5+中有ScheduledExecutorService:
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// do stuff
}
}, 0, 5, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
上述方法是有利的.在Java 5之前,您使用Timer和TimerTask:
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// do staff
}
}, 0, 5000);
Run Code Online (Sandbox Code Playgroud)
看看Executors.newScheduledThreadPool.它将允许您创建一个ScheduledExecutorService允许您Runnable定期提交s的程序.
while (true) {
thread.sleep(1000)
method();
}
Run Code Online (Sandbox Code Playgroud)
在许多情况下,会有更好的选择。但这是在1000ms + n的间隔内实现对method()的常规执行的最简单方法(其中n是执行method()所花费的时间)
当然,您可以输入所需的任何毫秒值,而不是1000。在另一个线程控制的标志上实现while循环也可能是一个想法。这样就有了一种无需停止程序就可以停止循环执行的方法。
使用下面的代码:
Timer timer = new Timer();
timer.schedule( new TimerTask()
{
public void run() {
// do your work
}
}, 0, 60*(1000*1));
Run Code Online (Sandbox Code Playgroud)