计时器软件哪个好 Java计时器Timer 使用
Java计时器Timer 使用
所有类型的 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参数 就可以在某个固定的时间执行这个任务
}
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参数 就可以在某个固定的时间执行这个任务
}
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);
}
lishixinzhi/Article/program/Java/hx/201311/25938