全网整合营销服务商

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

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

java多线程之定时器Timer的使用详解

定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术.

Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务.

Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法.

通过查文档我们看到Timer有以下几个构造函数:

 

Timer的方法以下这么多:

下面我们通过定时器来完成一个简单功能,就是在运行项目三秒后,在控制台打印出"您该起床了",来模拟一下闹钟的功能:

package com.wang.reflect;

import java.util.Timer;
import java.util.TimerTask;

class MyTask extends TimerTask{

  @Override
  public void run() {
    System.out.println("您该起床了!!!!");
  }
}
public class TimerDemo {
  public static void main(String[] args) {
    //创建定时器对象
    Timer t=new Timer();
    //在3秒后执行MyTask类中的run方法
    t.schedule(new MyTask(), 3000);
    
  }
}

运行后,我们发现三秒后控制台打印出了相当的文字,但是任务虽然执行完了,进程却没有销毁,还是呈红色状态,这是什么原因呢?

创建了一个Timer就相当于启动了一个新线程,这个新线程并不是守护线程,所以会一直运行.

在Time类和TimerTask类中都有一个cancel()方法.

TimerTask类中的作用是:将自身从任务队列中清除,(一个Timer对象可以执行多个Timertask任务)

Timer类中的作用是:将任务队列中的全部任务清空.

下面写一个实例,定时删除指定磁盘某个目录下的所有文件:

package com.wang.reflect;

import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


class MyTask extends TimerTask{
/**
 * 定时删除指定位置的文件,(这里以删除f盘下aa文件夹的所有文件为例)
 */
  @Override
  public void run() {
    File file=new File("f://aa");
    deleteFolder(file);
    
  }
  public void deleteFolder(File file){
    File[] files=file.listFiles();
    for(File f:files){
      if(f.isDirectory()){
        //使用递归
        deleteFolder(f);
      }else{
        f.delete();
      }
    }
    file.delete();
  }
  
}
public class TimerDemo {

  public static void main(String[] args) throws ParseException {
    //创建定时器对象
    Timer t=new Timer();
    String time="2016-04-04 11:26:40";
    Date d=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
    t.schedule(new MyTask(), d);
  }
}

注意,如果在上面测试代码中,我给出的Date类型的时间,早于当前的时间.则会立即执行task任务.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java定时器timer  # java定时器timer详解  # java定时器timer写法  # java实现多线程之定时器任务  # Java多线程定时器Timer原理及实现  # Java多线程之定时器Timer的实现  # Java多线程案例之定时器详解  # Java多线程案例实战之定时器的实现  # 类中  # 递归  # 是一个  # 几个  # 都有  # 就是在  # 出了  # 多个  # 他在  # 这么多  # 却没有  # 此类  # 为例  # 在上面  # 比较多  # 来完成  # 则会  # 机上  # 在手  # 多线程 


相关文章: 建站VPS推荐:2025年高性能服务器配置指南  如何高效利用200m空间完成建站?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  英语简历制作免费网站推荐,如何将简历翻译成英文?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何使用Golang安装API文档生成工具_快速生成接口文档  ,石家庄四十八中学官网?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何选择CMS系统实现快速建站与SEO优化?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何注册花生壳免费域名并搭建个人网站?  音乐网站服务器如何优化API响应速度?  深入理解Android中的xmlns:tools属性  孙琪峥织梦建站教程如何优化数据库安全?  北京制作网站的公司,北京铁路集团官方网站?  建站之星安装后如何配置SEO及设计样式?  如何快速配置高效服务器建站软件?  seo网站制作优化,网站SEO优化步骤有哪些?  定制建站方案优化指南:企业官网开发与建站费用解析  平台云上自主建站:模板化设计与智能工具打造高效网站  建站ABC备案流程中有哪些关键注意事项?  长沙做网站要多少钱,长沙国安网络怎么样?  北京网站制作公司哪家好一点,北京租房网站有哪些?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站主机SSH密钥生成步骤及常见问题解答?  如何在云服务器上快速搭建个人网站?  如何在Windows 2008云服务器安全搭建网站?  制作网站的软件免费下载,免费制作app哪个平台好?  如何通过商城自助建站源码实现零基础高效建站?  如何选购建站域名与空间?自助平台全解析  ,sp开头的版面叫什么?  建站之星代理商如何保障技术支持与售后服务?  建站之星如何一键生成手机站?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  网站制作网站,深圳做网站哪家比较好?  如何在Tomcat中配置并部署网站项目?  C#如何在一个XML文件中查找并替换文本内容  电商平台网站制作流程,电商网站如何制作?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  小建面朝正北,A点实际方位是否存在偏差?  建站VPS配置与SEO优化指南:关键词排名提升策略  制作网站外包平台,自动化接单网站有哪些?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  家庭建站与云服务器建站,如何选择更优?  如何选择美橙互联多站合一建站方案?  香港服务器选型指南:免备案配置与高效建站方案解析  如何用PHP工具快速搭建高效网站? 

您的项目需求

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