在某些情况下,我们大多数人会这样写:

try {
   Thread.sleep(2000);
} catch (InterruptedException e) {
   ; // do nothing
}

我的意思不是说对与错,仅在某些测试工具中可以接受。
我的观点是,可以更简洁地编写相同的代码,如下所示:
  LockSupport.parkNanos(2000* 1000000);

我为什么有理由偏爱一种方法而不是另一种方法。

最佳答案

parkNanos方法的文档提供了该方法可以返回的条件。这些条件之一是:虚假地(即,无缘无故地)返回调用。因此,基本上,如果您不介意虚假唤醒和其他一些线程“释放”正在考虑的线程,则可以使用它。当然,乔恩(Jon)的评论几乎钉住了优先于另一个的理由。

09-11 18:13