Java 定时任务与线程池结合使用示例
在Java中,可以使用'ScheduledExecutorService'类来创建一个定时任务,并且可以通过使用'ThreadPoolExecutor'类来创建一个线程池。
下面是一个示例代码:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ScheduledTaskWithThreadPool {
public static void main(String[] args) {
// 创建一个线程池
ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
// 创建一个定时任务
ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(5);
scheduledExecutor.scheduleAtFixedRate(() -> {
// 执行任务的代码
threadPool.execute(() -> {
// 任务的具体逻辑
System.out.println('Task is running');
});
}, 0, 1, TimeUnit.SECONDS);
// 关闭定时任务和线程池
scheduledExecutor.shutdown();
threadPool.shutdown();
}
}
在上面的示例中,首先创建了一个线程池'ThreadPoolExecutor',然后使用'Executors.newScheduledThreadPool(5)'创建了一个定时任务'scheduledExecutor',并且使用'scheduleAtFixedRate'方法指定了任务的执行间隔。在任务的执行逻辑中,通过调用线程池的'execute'方法来执行具体的任务。最后,在程序结束之前,需要调用'shutdown'方法来关闭定时任务和线程池。
原文地址: https://www.cveoy.top/t/topic/qkOT 著作权归作者所有。请勿转载和采集!