java 自带 定时器Timer
2013-08-06 18:52
253 查看
package com.TestTime; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Timer; public class Time extends Timer { private Time(){}; private Time(String name ){}; public static void main(String []args){ Time t=new Time();//创建一个新计时器。 Time t1=new Time("name1");//创建一个新计时器,其相关的线程具有指定的名称。 Calendar cal = new GregorianCalendar(2013, 07, 06,18,38,0); /*这个是设置开始时间 year - 用来在日历中设置 YEAR 日历字段的值。 month - 用来在日历中设置 MONTH 日历字段的值。Month 值是基于 0 的,例如,0 表示 1 月。 dayOfMonth - 用来在日历中设置 DAY_OF_MONTH 日历字段的值。 hourOfDay - 用来在日历中设置 HOUR_OF_DAY 日历字段的值。 minute - 用来在日历中设置 MINUTE 日历字段的值。 second - 用来在日历中设置 SECOND 日历字段的值。*/ Date d=null; try { d = cal.getTime(); System.out.println(d.getTime()); } catch (Exception e) { e.printStackTrace(); } t.scheduleAtFixedRate(new Job(), d, 1000);//定时器从 2013年8月6号 18时 38分钟后 每分钟执行一次 t.scheduleAtFixedRate(new Job("job1"), 1000, 3000);//定时器1秒后 每3秒钟执行一次 } }
package com.TestTime; import java.util.Date; import java.util.TimerTask; /** * 定时器测试类 * @author Administrator * */ public class Job extends TimerTask{ String name =""; //设置构造函数是为了便于执行某个方法 public Job(){}; public Job(String Jobname){ this.name=Jobname; }; @Override public void run() { if(name.equals("job1")){ test1(); }else { test2(); } } /** * 测试方法一 */ public void test1(){ Date d=new Date(); System.out.println("这个是定时器job1--"+d.getMinutes()); } /** * 测试方法二 */ public void test2(){ Date d=new Date(); System.out.println("这个是定时器"+d.getMinutes()); } }
如果想在服务启动后运行定时器
package com.accp; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class Time extends Timer implements ServletContextListener { public Time(){}; public Time(String name ){} Time t=null; Time t1=null; public void contextDestroyed(ServletContextEvent event) { t.cancel(); // TODO Auto-generated method stub event.getServletContext().log("销毁方法"); } public void contextInitialized(ServletContextEvent event) { // TODO Auto-generated method stub event.getServletContext().log("定时器启动"); t=new Time();//创建一个新计时器。 Time t1=new Time("name1");//创建一个新计时器,其相关的线程具有指定的名称。 Calendar cal = new GregorianCalendar(2013, 07, 07,21,16,0); /*这个是设置开始时间 year - 用来在日历中设置 YEAR 日历字段的值。 month - 用来在日历中设置 MONTH 日历字段的值。Month 值是基于 0 的,例如,0 表示 1 月。 dayOfMonth - 用来在日历中设置 DAY_OF_MONTH 日历字段的值。 hourOfDay - 用来在日历中设置 HOUR_OF_DAY 日历字段的值。 minute - 用来在日历中设置 MINUTE 日历字段的值。 second - 用来在日历中设置 SECOND 日历字段的值。*/ Date d=null; try { d = cal.getTime(); System.out.println(d.getTime()); } catch (Exception e) { e.printStackTrace(); } t.scheduleAtFixedRate(new Job(), d, 1000);//定时器从 2013年8月7号 21时 16分钟后 每分钟执行一次 t.scheduleAtFixedRate(new Job("job1"), 1000, 3000);//定时器1秒后 每3秒钟执行一次 } } package com.accp; import java.util.Date; import java.util.TimerTask; public class Job extends TimerTask { String name =""; //设置构造函数是为了便于执行某个方法 public Job(){}; public Job(String Jobname){ this.name=Jobname; }; @Override public void run() { if(name.equals("job1")){ test1(); }else { test2(); } } /** * 测试方法一 */ public void test1(){ Date d=new Date(); System.out.println("这个是定时器job1--"+d.getMinutes()); } /** * 测试方法二 */ public void test2(){ Date d=new Date(); System.out.println("这个是定时器"+d.getMinutes()); } } web.xml 中配置 <listener> <listener-class>com.accp.Time</listener-class> </listener>
相关文章推荐
- 两种方式实现java定时器,使用quartz定时器框架和java自带Timer定时器,编写定时任务
- java_Timer_schedule jdk自带定时器
- Java多线程编程核心技术(第五章定时器Timer笔记)
- java中使用线程实现Timer(定时器)原理和源码
- 利用java定时器Timer实现定时传送数据的任务
- Java - Timer定时器
- java之认识定时器Timer
- Java 定时器 Timer 的使用.
- Java Timer 定时器的使用
- Java进阶(十八)Java实现定时器(Timer)
- JAVA定时器实现之一(通过继承TimerTask)
- Java中的Timer定时器
- Java Timer 定时器的使用
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- Java 定时器(Timer)及线程池里使用定时器实例代码
- java定时器的使用(Timer)
- java中的定时器Timer
- java--timer--task定时器使用实例
- java中的定时器Timer的使用及实例