在 Java 中暂停执行以实现延迟
在 Java 中,执行需要限时执行的循环会引入延迟的需要。本指南介绍了在 Java 中合并延迟的方法。
使用 TimeUnit 进行延迟
利用 java.util.concurrent.TimeUnit,您可以引入延迟,如下所示:
TimeUnit.SECONDS.sleep(1); // Pauses for one second TimeUnit.MINUTES.sleep(1); // Pauses for one minute
但是,由于自然执行变化,此方法可能会随着时间的推移而产生漂移。
与 ScheduledExecutorService 的替代方案
要获得更精确和灵活的延迟,请考虑 ScheduledExecutorService。它允许您以固定速率或延迟安排任务:
对于 Java 8:
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
对于 Java 7:
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { myTask(); } }, 0, 1, TimeUnit.SECONDS);
以上是如何在Java执行中实现精确的延迟?的详细内容。更多信息请关注PHP中文网其他相关文章!