java让某个方法10s执行一次
时间: 2023-02-09 21:05:38 浏览: 515
可以使用 `java.util.Timer` 类或 `java.util.concurrent.ScheduledExecutorService` 类来实现这个功能。
使用 `Timer` 类:
```java
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// 这里是需要执行的方法
}
}, 0, 10 * 1000); // 每10s执行一次
}
}
```
使用 `ScheduledExecutorService` 类:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(() -> {
// 这里是需要执行的方法
}, 0, 10, TimeUnit.SECONDS); // 每10s执行一次
}
}
```
注意:
- `Timer` 类是基于单线程的,如果一个任务执行时间过长,可能会导致其他任务延迟执行。
- `ScheduledExecutorService` 类是基于线程池的,可以并发执行多个任务,性能更好。
参考文献:
- [Java Timer and TimerTask](https://www.tutorialspoint.com/java/util/java_util_timer.htm)
- [Java ScheduledExecutorService](https://www.tutorialspoint.com/java/util/java_util_concurrent_scheduledexecutorservice.htm)
阅读全文