在某些情况下,我们大多数人会这样写:
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
; // do nothing
}
我的意思不是说对与错,仅在某些测试工具中可以接受。
我的观点是,可以更简洁地编写相同的代码,如下所示:
LockSupport.parkNanos(2000* 1000000);
我为什么有理由偏爱一种方法而不是另一种方法。
最佳答案
parkNanos
方法的文档提供了该方法可以返回的条件。这些条件之一是:虚假地(即,无缘无故地)返回调用。因此,基本上,如果您不介意虚假唤醒和其他一些线程“释放”正在考虑的线程,则可以使用它。当然,乔恩(Jon)的评论几乎钉住了优先于另一个的理由。