Java的定时调度

摘要:
完成定时调度需要Timer和TimerTask类的支持Timer类:lTimer类是一种线程设施,可以是现在某一时间或某一时间后,安排某一任务执行一次,或定期重复执行。TimerTask类用来实现由Timer类安排的一次或重复执行的某一任务。TimerTask类是一个抽象类,如果要使用此类,需要自己建立一个类继承此类,并实现其中的抽象方法。定义一个类基础TimerTask类,完成具体的任务。

一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去。

定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度。如果要使用定时调动,则必须要保证程序要始终运行着,也就是说定时调度是在程序之外又启动了一个新的线程。

完成定时调度需要TimerTimerTask类的支持

Timer类:

  • lTimer类是一种线程设施,可以是现在某一时间或某一时间后,安排某一任务执行一次,或定期重复执行。给功能要与TimerTask类结合使用。TimerTask类用来实现由Timer类安排的一次或重复执行的某一任务。
  • l每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否则会延迟后续任务的执行,而这些后续的任务可能堆在一起,等到该任务完成后快速迅速执行。

Java的定时调度第1张

schedule()scheduleAtFixedRate()方法的区别:

两者区别在于重复执行任务时,对于时间间隔出现延迟的情况的处理:

  • lschedule()方法的执行时间间隔是固定的,如果之前出现了延迟的情况,之后也会继续按照指定的时间间隔来执行;
  • lscheduleAtFixedRate()方法可以根据出现的延迟时间自动调整下一次间隔的执行时间。

TimerTask类:

要想执行具体的任务,则必须使用TimerTask类。TimerTask类是一个抽象类,如果要使用此类,需要自己建立一个类继承此类,并实现其中的抽象方法。

Java的定时调度第2张

按照此概念,完成一个时间调度程序,每隔2秒打印一次时间。

定义一个类基础TimerTask类,完成具体的任务。

1 import java.text.SimpleDateFormat;
2 import java.util.Date;
3 import java.util.TimerTask;
4 
5 public class MyTask extends TimerTask{  //任务调度类都要继承此类
6 @Override
7     public void run() {  //完成具体的任务
8         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
9         System.out.println("当前系统时间:"+sdf.format(newDate()));
10 }    
11 }

完成的是一个具体的任务操作类,以后定调度调的就是此类中的run()方法。

1 public class TestTimerTask {   //测试类
2     public static voidmain(String args[]){
3         Timer t = new Timer();  //建立Timer对象
4         MyTask mt = new MyTask();  //定义任务
5         t.schedule(mt, 1000,2000); //设置任务的执行,1秒后开始,每2秒执行一次
6 }
7 }

免责声明:文章转载自《Java的定时调度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇手把手教你 用 wpf 制作metro ProgressRing (Windows8 等待动画)ali-oss-upload-cli 命令上传文件到 OSS 桶下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

POI操作word和html相互转化

下面是里两个类:第一个类是html转为word,第二个是word转html(最下面附上jar包下载链接)packagecom.wz.poi.wordHtml;/***2018/4/24*@authorAdministrator**/importjava.io.BufferedReader;importjava.io.ByteArrayInputStream;...

基于 WebRTC 的 RTSP 视频实时预览

该方案采用基于WebRTC的视频即时消息,其原生支持RTP协议的解码,因此延迟可以非常低,约为0.2-0.4秒。其他方案的延迟大于1秒。WebRTC需要浏览器。您可以在以下地址查看支持的浏览器。WebRTC实现基于web的视频会议。标准是WHATWG协议。其目的是通过浏览器提供简单的javascript来实现实时通信功能。Github中有很多WebRTC的实...

"SQLserver 事务日志已满"解决方法

如果不够,备份后换个地方存[注:tempdb你数据库名称。...

TabWidget修改tab颜色,自定义样式

您可以通过tabWidget-˃setStyleSheet方法设置样式,包括选项卡样式。...

微软新一代输入法框架 TSF

目前,市场上的非微软中文输入法基本上只实现IMM框架。自Windows XP开始以来,Windows提供了一个基于COM的新输入框架TSF。但是,Windows Vista和Windows 7用户也可以使用各种基于IMM的输入方法,因为Windows提供了一个组件来将所有TSF请求转换为IMM API。很可能,因为Win8下的许多Imm函数无法使用。)根据微...

[笔记]manjaro kde主题&手动安装主题

安装manjaroKDE主题。首先,安装manjaro主题,有两种方法:“系统设置”-“全局主题”-“获取新的全局主题”,您还可以在“外观”中获得“等离子样式、应用程序样式、颜色等”的新全局主题“.通过manjarokdestore下载主题,然后将主题导入系统。但是,由于某些原因,方法1在我的计算机上不可行。加载速度非常慢,下载速度非常慢。据说可以通过pro...