【发布时间】:2015-05-20 20:35:41
【问题描述】:
我在我们的代码库中看到下面很多代码sn-ps:
try {
Thread.sleep((int)Millis);
} catch (InterruptedException e) {
}
显然,空的 catch 子句不是一个好主意。如果线程被中断,睡眠周期不会完全结束。
我想知道我的代码中是否没有逻辑可以中断线程,JVM 是否可以中断正在休眠的线程?如果是这样,如何确保线程休眠到指定周期结束?
使用thread.sleep() 方法的最佳做法是什么?
【问题讨论】:
-
如果你在乎,答案也取决于事实。如果您不关心线程在从睡眠状态返回之前是否被中断,则无需担心。另一方面,如果睡眠后的代码依赖于睡眠完成(或线程的状态),那么您应该监控异常
-
在询问如何正确地围绕它们进行编码之前,我会先问一下睡眠在那里做了什么。一个正确编写的应用程序根本不需要休眠。
标签: java