知识大全 Java计时器Timer 使用

Posted

篇首语:沉舟侧畔千帆进,病树前头万木春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java计时器Timer 使用相关的知识,希望对你有一定的参考价值。

Java计时器Timer 使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  所有类型的 Java 应用程序一般都需要计划重复执行的任务

  Timer类是用来执行任务的类 它接受一个TimerTask做参数

  java util Timer 和 java util TimerTask 它们使程序员可以很容易地计划简单的任务

  Timer

  Timer最常用的是schedule执行任务的模式 它可以以两种方式执行任务:

   :在某个时间(Data) :在某个固定的时间之后(int delay) 这两种方式都可以指定任务执行的频率

  看个简单的例子:

  Java代码

  import java io IOException;

  import java util Timer;

  public class TimerTest

  public static void main(String[] args)

  Timer timer = new Timer();

  timer schedule(new Job() );//在 秒后执行此任务 每次间隔 秒 如果传递一个Data参数 就可以在某个固定的时间执行这个任务

  /*

  //这个是用来停止此任务的 否则就一直循环执行此任务了

  while( == )

  try

  if( == )

  timer cancel();//使用这个方法退出任务

  

   catch (IOException e)

  e printStackTrace();

   */

  

  static class Job extends java util TimerTask

  @Override

  public void run()

  // TODO Auto generated method stub

  System out println( so easy! );

  

  

  

  import java io IOException;

  import java util Timer;

  public class TimerTest

  public static void main(String[] args)

  Timer timer = new Timer();

  timer schedule(new Job() );//在 秒后执行此任务 每次间隔 秒 如果传递一个Data参数 就可以在某个固定的时间执行这个任务

  /*

  //这个是用来停止此任务的 否则就一直循环执行此任务了

  while( == )

  try

  if( == )

  timer cancel();//使用这个方法退出任务

  

   catch (IOException e)

  e printStackTrace();

   */

  

  static class Job extends java util TimerTask

  @Override

  public void run()

  // TODO Auto generated method stub

  System out println( so easy! );

  

  

  

  TimerTask 刚才在代码里提到了 TimerTask 类 TimerTask类里有一个抽象方法run() 我们把任务写到run()方法里 或由run()执行其他方法

  完整的代码:

  Java代码

  public class TimerTest

  public static void main(String[] args)

  int delay= ;//延迟 秒

  Timer timer=new Timer();//生成一个Timer对象

  NewTask myTask=new NewTask();//初始化我们的任务

  timer schedule(yourTask delay);//还有其他重载方法

  

  

  class NewTask extends TimerTask//继承TimerTask类

  public void run()

  System out println( printing! );

  

  

  public class TimerTest

  public static void main(String[] args)

  int delay= ;//延迟 秒

  Timer timer=new Timer();//生成一个Timer对象

  NewTask myTask=new NewTask();//初始化我们的任务

  timer schedule(yourTask delay);//还有其他重载方法

  

  

  class NewTask extends TimerTask//继承TimerTask类

  public void run()

  System out println( printing! );

  

  这样这个程序就会在五秒钟后输出 printing!

  Timer的功能是相当强大的 若要详细了解 可以查看帮助文档

  完整案例!

  现在大家看一下我写的关于实现LED滚屏显示动态信息!

  web 监听

  Java代码

  package ving xzfw led;

  import java util Timer;//定时器类

  import javax servlet ServletContextEvent;

  import javax servlet ServletContextListener;

  import javax servlet ServletContext;

  import apache log j Logger;

  import ving xzfw util GetInformation;

  //import ving xzfw lwsp GetConfigInfor;

  public class LEDListener implements ServletContextListener

  private Timer timer = null;

  private Logger log = Logger getLogger(getClass());

  //  GetconfigInfor config = new GetconfigInfor();

  GetInformation getInfo = new GetInformation( bpelConfig properties );

  Integer runTime = Integer parseInt(getInfo getProperty( led TimingRunTime ));

  String fileRealPath = ;

  String templePath = ;

  public void contextInitialized(ServletContextEvent event)

  // 在这里初始化监听器 在tomcat启动的时候监听器启动 可以在这里实现定时器功能

  ServletContext context = event getServletContext();

  fileRealPath = context getRealPath( )

  + System getProperty( file separator ) + LEDFile

  + System getProperty( file separator );

  templePath = context getRealPath( )

  + System getProperty( file separator ) + led

  + System getProperty( file separator );

  timer = new Timer();

  ( 定时器已启动 );// 添加日志 可在tomcat日志中查看到

  timer schedule(new LEDTimerTack(fileRealPath templePath) runTime);

  ( 已经添加任务 );

  

  public void contextDestroyed(ServletContextEvent event) // 在这里关闭监听器 所以在这里销毁定时器

  timer cancel();

  ( 定时器销毁 );

  

  

  package ving xzfw led;

  import java util Timer;//定时器类

  import javax servlet ServletContextEvent;

  import javax servlet ServletContextListener;

  import javax servlet ServletContext;

  import apache log j Logger;

  import ving xzfw util GetInformation;

  //import ving xzfw lwsp GetConfigInfor;

  public class LEDListener implements ServletContextListener

  private Timer timer = null;

  private Logger log = Logger getLogger(getClass());

  //GetconfigInfor config = new GetconfigInfor();

  GetInformation getInfo = new GetInformation( bpelConfig properties );

  Integer runTime = Integer parseInt(getInfo getProperty( led TimingRunTime ));

  String fileRealPath = ;

  String templePath = ;

  public void contextInitialized(ServletContextEvent event)

  // 在这里初始化监听器 在tomcat启动的时候监听器启动 可以在这里实现定时器功能

  ServletContext context = event getServletContext();

  fileRealPath = context getRealPath( )

  + System getProperty( file separator ) + LEDFile

  + System getProperty( file separator );

  templePath = context getRealPath( )

  + System getProperty( file separator ) + led

  + System getProperty( file separator );

  timer = new Timer();

  ( 定时器已启动 );// 添加日志 可在tomcat日志中查看到

  timer schedule(new LEDTimerTack(fileRealPath templePath) runTime);

  ( 已经添加任务 );

  

  public void contextDestroyed(ServletContextEvent event) // 在这里关闭监听器 所以在这里销毁定时器

  timer cancel();

  ( 定时器销毁 );

  

  

  LEDTimeTrack

  Java代码

  package ving xzfw led;

  import java util TimerTask;

  public class LEDTimerTack extends TimerTask

  String fileRealPath = ;

  String templePath = ;

  String type= ;

  int floor;

  public LEDTimerTack(String fileRealPath String templePath String type Integer floor)

  this fileRealPath=fileRealPath;

  this templePath=templePath;

  this type =type;

  this floor=floor;

  

  public LEDTimerTack(String fileRealPath String templePath)

  this fileRealPath=fileRealPath;

  this templePath=templePath;

  

  public void run( )

  for(int i= ;i<= ;i++)

  //呵呵 这里就是led动态生成信息的代码!

  XlsUtil createHtmlFile(templePath fileRealPath i);

  

cha138/Article/program/Java/hx/201311/25938

相关参考

知识大全 java定时器使用

   定时器类Timer在javautil包中使用时先实例化然后使用实例的schedule(TimerTasktasklongdelay)方法设定指定的任务task在指定

知识大全 Java定时任务Timer

Java定时任务Timer  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java定时任务用到的

知识大全 JAVA TIMER简单用法学习

JAVATIMER简单用法学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Timer有两种执

知识大全 Java语言中Timer类的简洁用法(二)

Java语言中Timer类的简洁用法(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  实现计

知识大全 Java语言中Timer类的简洁用法(一)

Java语言中Timer类的简洁用法(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  所有类

知识大全 用JNI实现一个高精度的Java计时器

用JNI实现一个高精度的Java计时器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 Java定时器

Java定时器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  好多朋友用过Windows的任务计

知识大全 TimerTask与Timer类的应用

TimerTask与Timer类的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Timer

知识大全 Timer,Quartz和Spring实现作业调度

Timer,Quartz和Spring实现作业调度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 PHP中使用pcntl和libevent实现Timer功能

PHP中使用pcntl和libevent实现Timer功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一