Timer为定时周期性执行调度性能没有concurrent包下的高,不过原理还是需要了解下的,手续看下使用:
Timer timer = new Timer("Fetch thread"); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("**Fetch thread1 run**" + this.scheduledExecutionTime()); } }, 1000, 10); timer.schedule(new TimerTask() { @Override public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("**Fetch thread2 run**" + this.scheduledExecutionTime()); } }, 1000, 10);
执行打印结果:
schedule: **Fetch thread2 run**1387522409123 **Fetch thread2 run**1387522419125 **Fetch thread2 run**1387522429126 scheduleAtFixedRate: **Fetch thread1 run**1387522551056 **Fetch thread1 run**1387522551066 **Fetch thread1 run**1387522551076
总结:
schedule方法:在上次执行结束之后开始按某固定的rate执行
scheduleAtFixedRate方法:在上次执行开始时开始按某固定的rate执行,也就是说不关心上次是否执行完成此次执行就已经开始了so要注意并发。
实现原理:
Timer里维护了一个TimerThread,而TimerThread里维护了一个TaskQueue,所有的TimerTask都放在此TaskQueue种,在TimerThread中执行while(ture)通过对TaskQueue的notify wait来实现操作。
相关推荐
所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间...在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。
有个简单的java 的例子描述对java的Timer的使用的介绍,与实现的例子,方便大家学习
java 定时器(Timer) java 定时器(Timer) java 定时器(Timer)
java定时器,timer类操作详解 java定时器,timer类操作详解
Java里timer执行定时任务
Java语言中Timer类的简洁用法.doc
Java定时器Timer简述.pdf
java多线程定时器
Java语言中Timer类的简洁用法 Java语言中Timer类的简洁用法 Java语言中Timer类的简洁用法
自己写的java timer控件定时器详解(附详细代码),已通过调试并运行。
本文首先设计一个单次定时器Timer+TimerTask,然后再次基础上设计一个循环定时器。
Java计时器Timer 使用
NULL 博文链接:https://675990021.iteye.com/blog/2265945
java-timer的应用,介绍了timer 在java程序中设置定时器。
本文档主要讲述的是Java中的Timer和TimerTask的使用;Timer是一个定时器类,通过该类可以为指定的定时任务进行配置。TimerTask类是一个定时任务类,该类实现了Runnable接口,而且是一个抽象类。希望本文档会给有需要...
NULL 博文链接:https://love-66521.iteye.com/blog/1674900
java类Timer和TimerTask的使用.pdf
java_Timer定时器实例_Spring实例
Java中的Timer和TimerTask简介(附完整代码实例)。 在Java中,Timer和TimerTask是两个经常用来实现定时器的类。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求。 Timer是一种定时器工具,用来在一...
java类Timer和TimerTask的使用.doc