一、Java2的开发包中提供了一种很好使用的线程功能:你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其每隔一段时间执行。你也可以用Thread来完成,但利用Timer与TimerTask显然省事不少。
  TimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTask的类此此两者一般一起工作。所应用时首先硬创建一个TimerTask的对象,然后用一个Timer的类对象安排执行它

二、例子

  1. package com.bmkit.util.date;
  2.  
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.Timer;
  7. import java.util.TimerTask;
  8.  
  9. /**
  10. * Created by root on 16-5-23.
  11. */
  12. public class TestTimer {
  13.  
  14. public static void main(String[] arg) {
  15. Timer timer = new Timer();
  16.  
  17. /**
  18. * public void scheduleAtFixedRate(TimerTask task,long delay,long period)
  19. * public void schedule(TimerTask task,long delay,long period)
  20. * 任务进行重复的固定速率period执行,在指定的延迟delay后开始。
  21. */
  22. timer.scheduleAtFixedRate(new Case(), 1000, 2000);
  23. timer.schedule(new Case(), 1000, 2000);
  24.  
  25. /**
  26. * public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
  27. * public void schedule(TimerTask task,Date firstTime,long period)
  28. * 任务进行重复的固定速率period执行,从firstTime后开始。
  29. */
  30. String sDate = "2016-05-23 16:40:32";
  31. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  32. try {
  33. timer.scheduleAtFixedRate(new Case(), dateFormat.parse(sDate), 1000);
  34. } catch (ParseException e) {
  35. e.printStackTrace();
  36. }
  37.  
  38. /**
  39. * public void schedule(TimerTask task,Date time)
  40. * task被安排在time指定的时间time执行。
  41. */
  42. String sDate1 = "2016-05-23 16:40:32";
  43. SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  44. try {
  45. timer.schedule(new Case(), dateFormat1.parse(sDate1));
  46. } catch (ParseException e) {
  47. e.printStackTrace();
  48. }
  49.  
  50. /**
  51. * public void cancel()
  52. *终止Timer的功能执行,但不会对正在执行的任务有影响。当执行cancel方法后将不能再用其分配任务。
  53. */
  54. timer.cancel();
  55.  
  56. }
  57.  
  58. }
  59.  
  60. /**
  61. * 必须继承TimerTask
  62. */
  63. class Case extends TimerTask {
  64.  
  65. @Override
  66. public void run() {
  67. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  68. System.out.println(dateFormat.format(new Date()));
  69. }
  70. }

java之Timer的更多相关文章

  1. 使用Java的Timer处理周期性任务

    package timer; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; ...

  2. Java中Timer的用法

    现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoup ...

  3. Java计时器Timer和TimerTask用法

    package com.sy.game.test; import java.util.Timer; import java.util.TimerTask; public class TimeTask ...

  4. Java定时任务Timer、TimerTask与ScheduledThreadPoolExecutor详解

     定时任务就是在指定时间执行程序,或周期性执行计划任务.Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求. 一.Timer和TimerTask  Timer和Tim ...

  5. Java 中Timer和TimerTask 定时器和定时任务使用的例子

    转自:http://blog.csdn.net/kalision/article/details/7692796 这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求 Timer类是用来执行任 ...

  6. 使用java.util.Timer来周期性的执行制定的任务

    使用java.util.Timer来周期性的执行制定的任务 public class HandlerTest extends Activity { int[] images = new int[] { ...

  7. Java中Timer的用法--转载之网络

    用法很简单,new一个timer,然后写一个timertask的子类即可. import java.util.Timer; import java.util.TimerTask; public cla ...

  8. 定时任务:Java中Timer和TimerTask的使用

    java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...

  9. Java中Timer和TimerTask的使用

    转自:http://www.cdtarena.com/javapx/201306/8893.html java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个 ...

随机推荐

  1. JavaScript杂谈(顺便也当知识积累)

    JavaScript版本 JavaScript的普及使得其于1997年正式成为国际标准,其官方名称为ECMAScript 1999年定稿第三版ECMAScript标准,简称ES3 2009年重大改进的 ...

  2. edmx代码分析

    http://www.cnblogs.com/FoundationSoft/archive/2011/01/08/1930479.html 本文分析Entity Framework从数据库自动生成的模 ...

  3. Tips for writing a paper

    Tips for writing a paper 1. Tips for Paper Writing 2.• Before you write a paper • When you are writi ...

  4. Centos6.5安装和使用docker

    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install docke ...

  5. AssetBundle in Unity 5.0

    http://forum.unity3d.com/threads/new-assetbundle-build-system-in-unity-5-0.293975/

  6. Jquery实现textarea根据文本内容自适应高度

    本文给大家分享的是Jquery实现textarea根据文本内容自适应高度,这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件,这里推荐给小伙伴们. autoTextare ...

  7. 路径 dirname(__FILE__)

    require(dirname(__FILE__).'/include/init.php');

  8. centos 7.0安装花生壳

    没有wget 先下载get  命令 yum -y install wget 下载位置/usr/local/src 解压目录 /usr/local/bin/phddns-2.0.6.x86_64 1.下 ...

  9. 浅谈T-SQL中的特殊联结

    引言 上一篇博客我们介绍了交叉联接,内联接,外联接3种基本的联接操作.这一篇文章我们介绍一些特殊的联接操作. 组合联接 组合联接就是联接条件涉及到联接两边的多个列的查询.当需要根据主键-外键关系来联接 ...

  10. Jedis 例子(demo)大全

    第一步:到git下载jedis源码,如果你用maven或者gradle,那么直接下官方的即可,地址:https://github.com/xetorthio/jedis:如果你用ant,下载这个:ht ...