按照惯例,我会用Thread.sleep(int)
try/catch块包围的e.printStackTrace()
将程序延迟一小段时间。我想消除异常处理。我写了这个函数:
private static void pause(int millis) {
long end = System.currentTimeMillis() + millis;
while(System.currentTimeMillis() <= end) {
// Do nothing
}
}
但是使用它会占用15%的CPU(可听的事情)。
Thread.sleep(int)
如何在CPU使用率 Not Acceptable 情况下暂停?我的未经教育的猜测是,它执行的某些 Activity 很耗时,不需要太多的CPU工作量,而且除了耗费时间之外毫无意义。 最佳答案
Thread.sleep()
不做任何 Activity ;线程被挂起。但是,如果您只是想规避异常处理,为什么不将其添加到您的辅助方法中呢?
private static void pause(int millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
// Do nothing
}
}
如果要确保方法永远不会过早完成,可以将try-catch放入while循环中。
顺便说一句,从技术上讲,循环不需要主体,因此您可以在方法中用分号替换花括号。
更新:实际上... don't swallow interrupts。