这是我的代码
while (true) {
try {
Thread.sleep(5 * 60 * 1000);
processData();// data processing job
} catch (InterruptedException e) {
SystemMessageBillPay.getInstance().writeMessage("ERROR: CEB.run() - " + e.getMessage());
} catch (NumberFormatException e) {
SystemMessageBillPay.getInstance().writeMessage("ERROR: CEB.run() - " + e.getMessage());
}
}
对此
“ Thread.sleep(5 * 60 * 1000);”
代码检查员发出警告
“在循环中调用Thread.sleep可能会导致性能问题”
防止该警告的代码应该是什么
Is there a alternative to Thread.sleep
是的,有办法。但是,
您似乎要安排一些工作。您可以使用TimerTask或ScheduledExecutorService代替它。因此,您问题的稍后部分是关于
“在循环中调用Thread.sleep可能会导致性能问题”
这将通过计划任务来解决。
计划任务。
public class Test extends TimerTask{
public static void main(String[] args) {
Test task = new Test();
Timer timer = new Timer();
Calendar today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 13);
today.set(Calendar.MINUTE, 47);
today.set(Calendar.SECOND, 0);
timer.schedule(task, today.getTime(), TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS));
}
@Override
public void run() {
System.out.println("Running Scheduled Task...!!!");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句