1. //任务
  2. public class TaskSchedule extends TimerTask {
  3. //TimerTask 实现了 RUnnable 接口
  4. public void run() { //计划任务中具体做是事情
  5. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss.SSS");
  6. System.out.println(df.format(new Date()));
  7. }
  8. }
  9. //任务定时器
  10. public class TimerSchedule {
  11. public static void main(String[] args) throws InterruptedException {
  12. Timer timer = new Timer();
  13. timer.schedule(new TaskSchedule(), 1000, 1000);// 1秒后执行 然后每隔1秒 执行一次
  14. Thread.sleep(5000);
  15. timer.purge();//释放 已经取消的任务所占用的内存
  16. System.out.println("purge mem of cancled task");
  17. Thread.sleep(5000);
  18. timer.cancel();//停止任务(程序停止)
  19. }
  20. }
/**
* 启动刷新滚动数据的定时器
*/
public void startRefreshTimer(int refreshInterval) {
if (null == refreshTimer) refreshTimer = new Timer();
refreshTimer.schedule(new TimerTask() {
@Override
public void run() {
getScrollingMessage(false);
}
}, refreshInterval, refreshInterval);
}

Timer类中常用的方法:

cancel()   终止计时器,并放弃所有已安排的任务,对当前正在执行的任务没有影响。

purge()   将所有已经取消的任务移除,并释放移除任务的资源。

schedule(TimerTask task, Date time)

在指定的 Date 运行任务,如果时间已经过了则立即执行任务

schedule(TimerTask task, Date time, long period)

在指定的 Date 运行任务,当第一次运行后 每个 long 时间再运行

schedule(TimerTask task, long delay)

指定间隔时间运行

schedule(TimerTask task, long delay, long period)

指定间隔时间运行,并每隔period再运行,都是毫秒

以下两个方法基本同上面相同,区别在于以下方法是按照 rate 比率 进行的,

也就是接近于 period 的时间运行。方法可以根据出现的延迟时间自动调整下一次间隔的执行时间。

而上面的四个方法则间隔永远是固定的。

scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

scheduleAtFixedRate(TimerTask task, long delay, long period)

Timer 与 TimerTask 示例的更多相关文章

  1. 13 Timer和TimerTask 示例

    定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行.在Java中,可以通过Timer和TimerTask类来实现定义调度的功能 1 Timerjava.lang.Objec ...

  2. Java中的Timer和TimerTask在Android中的用法(转)

    转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI ...

  3. java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务

          经常我们都会有这样的需求,要固定的每隔一段时间执行某一个任务.比如:   我们做一个缓存来减少与数据库的交互,而为了使缓存与数据库中的数据尽量达到同步,需要每个固定的一段时间去数据库中的数 ...

  4. Java并发编程:Timer和TimerTask(转载)

    Java并发编程:Timer和TimerTask(转载) 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer ...

  5. Java线程:Timer和TimerTask

    Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口. Timer是一种线程设施,用于安排以后在后台线程中执行的任务.可安排任务执 ...

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

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

  7. JDK中的Timer和TimerTask详解(zhuan)

    http://www.cnblogs.com/lingiu/p/3782813.html ************************************************** 目录结构 ...

  8. Timer与TimerTask的真正原理&使用介绍

    转载: Timer与TimerTask的真正原理&使用介绍 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来 ...

  9. Java并发编程:Timer和TimerTask

    Java并发编程:Timer和TimerTask 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是 ...

随机推荐

  1. delphi 消息的使用

    //分析结果 WM_AnalysisResult = WM_USER + 1009; SendMessage(G_MainHandle, WM_AnalysisResult, 0, 0); proce ...

  2. Windows Phone本地数据库(SQLCE):9、Connection Strings(翻译) (转)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第八篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知 ...

  3. maven报错

    今天执行mvn test的时候提示: 错误:读取 /home/subaochen/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.ja ...

  4. mqtt介绍

    MQTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接.例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协 ...

  5. C#程序中判断DEBUG和RELEASE状态

    编辑 删除 习惯了用老方式(注释的方式)来对程序进行调试,不过昨天才发现这样调试存在很大的隐患:在工程发布的时候如果忘记把该注释的代码注释掉,而让这些调试信息随工程一起发布,如果是可见的调试信息倒好发 ...

  6. JS --- reduce()函数

    定义: reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值.对空数组是不会执行回调函数的. 案例 计算数组总和 var num = [1,2,3,4,5 ...

  7. 吸血鬼日记第一季/全集The Vampire Diaries迅雷下载

    本季The Vampire Diaries 1 第一季(2009)看点: <吸血鬼日记>由美国女作家L.J.史密斯的同名畅销系列小说改编而成.4个月前一场可怕的车祸夺去了他们双亲的生命,但 ...

  8. 多个so中模板单例的多次实例化

    在Android打包项目时,发现登录功能不能使用了,logcat中也没发现什么问题,最后一行一行log定位到了问题.原来是一个so文件中的构造函数被初始化二次!   这个单例是通过继承模板来实现的(暂 ...

  9. 实用ExtJS教程100例-001:开天辟地的Hello World

    ExtJS功能繁多,要想彻底的了解确实很困难.作为初学者,如何能找到一条快速的通道呢?我觉得,如果你有Javascript的基础,那就不要惧怕ExtJS的复杂,从动手开始,遇到问题,解决问题,积累经验 ...

  10. Eclipse 汉化的和修改字体的方法

    先进入 http://www.eclipse.org/babel/downloads.php 找到自己对应版本的网址,然后复制下来. 然后,进入eclipse.点工具栏上的Help - Install ...