java 线程池定时执行
时间: 2023-07-06 07:44:04 浏览: 113
JAVA定时执行
可以使用Java的ScheduledThreadPoolExecutor类来实现线程池定时执行任务。这个类可以定期执行任务,也可以延迟执行任务。以下是一个简单的示例代码:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledThreadPoolExample {
public static void main(String[] args) {
ScheduledExecutorService scheduledExecutorService =
Executors.newScheduledThreadPool(1); // 创建线程池,指定线程数为1
Runnable task = new Runnable() {
public void run() {
System.out.println("Task executed at " + System.nanoTime());
}
};
// 任务延迟1秒后开始执行,然后每2秒执行一次
scheduledExecutorService.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS);
}
}
```
这个例子创建了一个线程池,其中只有一个线程。然后,它定义了一个Runnable任务,打印一条消息,然后将该任务安排在1秒后执行,然后每2秒执行一次。您可以根据需要更改延迟和执行间隔。请注意,ScheduledThreadPoolExecutor类还有其他有用的方法,例如schedule(),它可以让您在指定的延迟后执行任务,而不是在固定的时间间隔内执行任务。
阅读全文