首页 > 编程语言 >java定时任务执行器

java定时任务执行器

时间:2024-01-05 15:15:17浏览次数:26  
标签:执行器 executorService java 2000 任务 ScheduledExecutorService 定时 执行

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() 方法来关闭执行器,以确保资源被正确释放。

标签:执行器,executorService,java,2000,任务,ScheduledExecutorService,定时,执行
From: https://www.cnblogs.com/goPush/p/17947271

相关文章

  • nested exception is java.lang.IllegalArgumentException异常问题解决
    项目启动报错如下:nestedexceptionisjava.lang.IllegalArgumentException:Couldnotresolveplaceholder'xxx'invalue"${xxx}"问题解决比较简单,只说我所遇到的情况,原因就是字母拼写问题仔细看还是能看到大写的K和小写的k有一些细微的区别,将nacos中的k和代码中修改一致后启......
  • java桌面小闹钟
    需求为防止整天久坐,编写一个桌面闹钟.该闹钟功能很简单,一个小时的倒计时,倒计时结束弹框提示起身运动下.点击确认后重新计时.且有一个复位按钮,可以重新计时.代码定义一个1小时的时间变量创建一个GUI界面,有一个Label标签显示时间,一个Button进行复位操作计时器每秒判断时......
  • Java 涉密信息截取字符替换为‘*‘号
    @TestpublicvoidtestAddition(){encrypt("111111111111111111",6,4);//该身份证号码为测试,并不实际存在//电话号码测试encrypt("18888888888",3,2);//该电话号码为测试,并不实际存在}/***@paramfront需要显示前几......
  • 使用Java移动文件
    一、使用JavaIO包的File类移动文件JavaIO包的File类提供了renameTo()方法,该方法可以用来移动文件。该方法的参数为一个File对象,代表目标文件的完整路径和文件名。示例代码:FilesourceFile=newFile("sourceFilePath");FiledestFile=newFile("destinationFilePath");if(so......
  • JAVA-EE使用谷歌的ZXing实现生成带LOGO的QR Code------JAVA-EE
    packagecom.powernode.qrcode.servlet;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.google.zxing.MultiFormatWriter;importcom.google.zxing.common.BitMatrix;importcom.google.zxing.qrcode.decoder.ErrorCorrect......
  • Apache Commons BCEL与Java字节码操作
    第1章:ApacheCommonsBCEL简介大家好,我是小黑,咱们今天来聊聊ApacheCommonsBCEL(ByteCodeEngineeringLibrary)。你可能会问,BCEL是什么鬼?别急,小黑这就给你娓娓道来。BCEL,它是一款专门用来操作Java字节码的库。想象一下,Java代码编译后变成了字节码,这些字节码是Java虚拟机执行的......
  • java基础语法API之GUI和时间类综合练习
    一:概述在这里将以两个小案例,去再次说明一个GUI和时间类的应用。二:具体案例<1>案例1:员工出勤查询在这里面需要最先写入一个DateChooser类,练习的时候可以直接复制这个代码,这个代码比较复杂。这个类是第一个代码块/*日期选择器,可以选择日期的显示格式*/importjavax.swing.*;imp......
  • Java之字符流的详细解析
     3.字符流当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。3.1字符输入流【Reader】java.io.Reader抽象类是表示用于......
  • Java项目管理工具 - Maven的使用
    Maven介绍什么是MavenMaven的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟。Maven在美国是一个口语化的词语,代表专家、内行的意思。一个对Maven比较正式的定义是这么说的:Maven是一个项目管理工具,它包含了一个项目对象模型(POM:ProjectObjectModel),一组标准集合,一个......
  • 关于JavaScript的技巧一
    1.滚动到页面顶部我们可以使用window.scrollTo()平滑滚动到页面顶部。constscrollToTop=()=>{window.scrollTo({top:0,left:0,behavior:"smooth"});};2.滚动到页面底部当然,如果知道文档的高度,也可以平滑滚动到页面底部。constscrollToBottom=()=>{wind......