java定时任务执行器

发布时间 2024-01-05 15:03:28作者: KeepSmiling_me
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

这段代码使用 Java 的 ScheduledExecutorService 接口和 Executors 类来创建一个单线程的定时任务执行器。

具体来说,Executors.newSingleThreadScheduledExecutor() 方法返回一个 ScheduledExecutorService 实例,该实例使用单个线程来执行定时任务。

你可以使用返回的 executorService 对象来安排和执行定时任务。例如,你可以使用 schedule 方法来安排一个任务在固定延迟之后执行,或使用 scheduleAtFixedRate 方法来安排一个任务按固定的时间间隔重复执行

 

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 executorService = Executors.newSingleThreadScheduledExecutor();

        executorService.schedule(() -> {
// 任务逻辑
System.out.println("任务执行");
}, 2000,2000, TimeUnit.MILLISECONDS);

        // 关闭执行器
        executorService.shutdown();
    }
}

在这段代码中,executorService.schedule(...) 方法被用于安排一个任务在固定延迟之后开始执行,并且之后每隔固定时间重复执行。

具体来说,这段代码的含义是:

  • executorService.schedule(...) 方法用于安排任务的执行。
  • 在 schedule(...) 方法中,你传递了一个 Lambda 表达式作为任务的逻辑。在这个示例中,任务逻辑是打印一条消息:"任务执行"。
  • 2000 是任务的初始延迟时间,表示任务将在 2000 毫秒(2 秒)之后开始执行。
  • 2000 是任务的固定延迟时间,表示任务将在每次执行完成后的 2000 毫秒(2 秒)之后再次执行。
  • TimeUnit.MILLISECONDS 是时间单位,指定了上述延迟时间的单位为毫秒。

综上所述,这段代码将会创建一个定时任务,它将在 2 秒钟之后开始执行,并且之后每隔 2 秒钟重复执行一次。任务的具体逻辑是打印一条消息到控制台。

请注意,这段代码只是定义了任务的执行计划,并没有启动执行器。在使用 ScheduledExecutorService 时,你还需要调用 shutdown() 方法来关闭执行器,以确保资源被正确释放。