ループ内での 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();
}
これを行うより良い方法はありますか?このような状況は問題ありますか?