Thread.sleep(500);有更好的替代方法吗
时间: 2024-03-11 21:48:24 浏览: 89
Linux多线程编程,替代sleep的几种方式
如果你的目的是暂停当前线程一段时间,那么 Thread.sleep() 是一个可靠的方法。但是如果你需要在等待期间执行一些其他操作,可以考虑使用 Java 的 ScheduledExecutorService。使用 ScheduledExecutorService,你可以在指定的延迟时间之后执行一些任务,而不必让当前线程休眠。这种方式可以更好地利用 CPU 资源。
下面是使用 ScheduledExecutorService 的一个示例:
```java
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(() -> {
// 在 500 毫秒后执行的任务
}, 500, TimeUnit.MILLISECONDS);
```
这个示例会创建一个 ScheduledExecutorService,然后在 500 毫秒之后执行一个任务。你可以在 lambda 表达式中编写你需要执行的操作。注意,这个示例只会执行一次任务。如果你需要周期性地执行任务,可以使用 ScheduledExecutorService 提供的其他方法。
阅读全文