我读过一些线程说在循环中调用 Thread.sleep() 是有问题的,并且是一个严重的性能问题。但在某些情况下,这似乎是最自然的事情。
例如,如果我希望我的应用程序每3 分钟执行一次(假设它是自动保存)
public void startAutosaveLoop(){
stop = false;
new Thread(new Runnable() {
@Override
public void run() {
while (!stop){
Thread.sleep(T*1000);
if (!stop){
// do something
}
}
}
}).start();
}
有没有更好的方法来做到这一点?这种情况有问题吗?