
正文
java定时器批处理代码 java定时器实现原理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java 怎么写定时任务
如果要执行一些简单java定时器批处理代码的定时器任务java定时器批处理代码,无须做复杂的控制,也无须保存状态,那么可以考虑使用JDK 入门级的定期器Timer来执行重复任务。
一、原理
JDK中,定时器任务的执行需要两个基本的类java定时器批处理代码:
java.util.Timer;
java.util.TimerTask;
要运行一个定时任务,最基本的步骤如下:
1、建立一个要执行的任务TimerTask。
2、创建一个Timer实例,通过Timer提供的schedule()方法,将 TimerTask加入到定时器Timer中,同时设置执行的规则即可。
当程序执行java定时器批处理代码了Timer初始化代码后,Timer定时任务就会按照设置去执行。
Timer中的schedule()方法是有多种重载格式的,以适应不同的情况。该方法的格式如下:
void schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
void schedule(TimerTask task, long delay)
安排在指定延迟后执行指定的任务。
void schedule(TimerTask task, long delay, long period)
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
Timer是线程安全的,此类可扩展到大量同时安排的任务(存在数千个都没有问题)。其所有构造方法都启动计时器线程。可以调用cancel() 终止此计时器,丢弃所有当前已安排的任务。purge()从此计时器的任务队列中移除所有已取消的任务。此类不提供实时保证:它使用 Object.wait(long) 方法来安排任务。
TimerTask是一个抽象类,由 Timer 安排为一次执行或重复执行的任务。它有一个抽象方法run()----计时器任务要执行的操作。因此,每个具体的任务类都必须继承TimerTask类,并且重写run()方法。另外它还有两个非抽象的方法:
boolean cancel()
取消此计时器任务。
long scheduledExecutionTime()
返回此任务最近实际 执行的安排 执行时间。
二、例子
下面用Timer实现一个简单例子:
package stu.timer;
import java.util.Date;
import java.util.TimerTask;
/**
* 重复执行的任务
*
* @author leizhimin,2008-10-9 9:20:20
*/
public class TestTimerTask extends TimerTask {
/**
* 此计时器任务要执行的操作。
*/
public void run() {
Date executeTime = new Date(this.scheduledExecutionTime());
System.out.println("本次任务执行的时间是" + executeTime);
}
}
package stu.timer;
import java.util.Timer;
import java.util.TimerTask;
/**
* 测试JDK Timer的执行
*
* @author leizhimin,2008-10-9 9:24:35
*/
public class TestTimer {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TestTimerTask();
timer.schedule(task, 500L, 1000L);
}
}
运行结果:
本次任务执行的时间是Thu Oct 09 09:47:57 CST 2008
本次任务执行的时间是Thu Oct 09 09:47:58 CST 2008
本次任务执行的时间是Thu Oct 09 09:47:59 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:00 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:01 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:02 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:03 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:04 CST 2008
本次任务执行的时间是Thu Oct 09 09:48:05 CST 2008
......
相关问答
Q1: 我有一个java程序的jar包,如何在.bat文件中定时循环定时执行,比如说定时五分钟执行一次
在jar文件里的main方法执行定时器,也就是Timer,设置五分钟执行一次,把要执行的代码方到Timer的方法里
Q2: java写一个定时器,定时对一个变量赋不同值,这个程序代码怎么写
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class MainEntry {
private int a;
public void setVal(){
Timer timer = new Timer();
//每隔一秒生成一个[1,100)内java定时器批处理代码的随机整数java定时器批处理代码,赋给成员a
timer.schedule(new TimerTask() {
@Override
public void run() {
Random rand = new Random();
setA(rand.nextInt(100));
}
}, 1000);
}
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
public static void main(String[] args) {
MainEntry me = new MainEntry();
me.setVal();
}
}
Q3: 编写一个java定时器 每隔5秒钟向数据库表中添加一条数据 求助应该咋写啊 求具体代码
import java.util.Timer;
import java.util.TimerTask;
public class Test extends TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
Test t=new Test();
//程序运行后立刻执行任务,每隔1000ms执行一次
timer.schedule(t, 0, 1000);
}
@Override
public void run() {
System.out.println("在此处调用插入数据库的方法");
}
}
Q4: JAVA里怎么实现,在某个固定的日期进行提醒?
用Java是可以这样实现的。使用Java自带的定时器 Timer 类 写一个定时器。把该类写好编译后。写一个 bat 文件(批处理文件)调用该类。然后将该bat 文件 注册到操作系统服务中java定时器批处理代码,使得开机自启动。这样每次开机后,系统都会调用该服务-执行批处理文件-执行该定时器。这样到java定时器批处理代码了定时器中指定的时间后,就会有提醒。至于如何提醒,可以在定时器中定义。
Q5: 用java编写一个定时器每隔一秒钟,在控制台打印出
看看下面代码,使用的是java.util.Timer类
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class T {
public static void main(String []args){
Timer timer=new Timer();
timer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println(new Date());
}
}, 0,1000);
}
}
java定时器批处理代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java定时器实现原理、java定时器批处理代码的信息别忘了在本站进行查找喔。






