全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java 定时器(Timer,TimerTask)详解及实例代码

 Java 定时器

在JAVA中实现定时器功能要用的二个类是Timer,TimerTask

Timer类是用来执行任务的类,它接受一个TimerTask做参数

Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率,本文有二个例子,一个是简单的一个是用了内部类

1.简单实例

  先写一个类

public class TimeTest {
public static void main(String[] args) {
  
   Timer timer = new Timer();
   timer.schedule(new MyTask(),1000,2000);
}

然后再写个类

public class MyTask extends TimerTask{

  @Override
  public void run() {
 System.out.println("开始运行");    
  }
}

这样就可以完成一个简单的定时器,但是还有一种方法就是把这二个类写入到一个类中,也就是内部类了

2.内部类

public class SerchRun {

  protected static void startRun(){
    Timer timer = new Timer();
     TimerTask task =new TimerTask(){
       public void run(){
         System.out.println("开始运行"); //在这写你要调用的方法
       }
     };
   timer.scheduleAtFixedRate(task, new Date(),2000);//当前时间开始起动 每次间隔2秒再启动
   // timer.scheduleAtFixedRate(task, 1000,2000); // 1秒后启动 每次间隔2秒再启动         
   }
  
  public static void main(String[] args) {
   SerchRun.startRun();
  }
}

 schedule和scheduleAtFixedRate的区别在于,如果指定开始执行的时间在当前系统运行时间之前,scheduleAtFixedRate会把已经过去的时间也作为周期执行,而schedule不会把过去的时间算上。

比如:

SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 Date d1 = fTime.parse("2005/12/30 14:10:00");
 
 t.scheduleAtFixedRate(new TimerTask(){
  public void run()
  {
    System.out.println("this is task you do6");
  }
 },d1,3*60*1000);

间隔时间是3分钟,指定开始时间是2005/12/30 14:10:00,如果我在14:17:00分执行这个程序,那么会立刻打印3次

this is task you do6   //14:10
this is task you do6   //14:13
this is task you do6   //14:16

并且注意,下一次执行是在14:19 而不是 14:20。就是说是从指定的开始时间开始计时,而不是从执行时间开始计时。

但是上面如果用schedule方法,间隔时间是3分钟,指定开始时间是2005/12/30 14:10:00,那么在14:17:00分执行这个程序,则立即执行程序一次。并且下一次的执行时间是 14:20,而不是从14:10开始算的周期(14:19)。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java  # 定时器  # Timer  # TimerTask  # 定时器详解及实例 


相关文章: 建站主机如何选?性能与价格怎样平衡?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  教学网站制作软件,学习*后期制作的网站有哪些?  宝塔新建站点报错如何解决?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  如何快速使用云服务器搭建个人网站?  ,怎么在广州志愿者网站注册?  如何在阿里云购买域名并搭建网站?  如何快速搭建响应式可视化网站?  网站设计制作企业有哪些,抖音官网主页怎么设置?  如何高效利用200m空间完成建站?  常州自助建站工具推荐:低成本搭建与模板选择技巧  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  购物网站制作公司有哪些,哪个购物网站比较好?  微信推文制作网站有哪些,怎么做微信推文,急?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何在阿里云通过域名搭建网站?  建站主机是什么?如何选择适合的建站主机?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  如何用IIS7快速搭建并优化网站站点?  如何快速搭建高效香港服务器网站?  建站之星与建站宝盒如何选择最佳方案?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何在腾讯云服务器快速搭建个人网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何用低价快速搭建高质量网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  图册素材网站设计制作软件,图册的导出方式有几种?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  C++时间戳转换成日期时间的步骤和示例代码  如何解决ASP生成WAP建站中文乱码问题?  建站之家VIP精选网站模板与SEO优化教程整合指南  建站之星展会模版如何一键下载生成?  做企业网站制作流程,企业网站制作基本流程有哪些?  Java解压缩zip - 解压缩多个文件或文件夹实例  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何快速搭建高效服务器建站系统?  黑客入侵网站服务器的常见手法有哪些?  MySQL查询结果复制到新表的方法(更新、插入)  如何配置FTP站点权限与安全设置?  公众号网站制作网页,微信公众号怎么制作?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站三合一如何选?哪家性价比更高?  高端网站建设与定制开发一站式解决方案 中企动力 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。