导航:首页 > 使用方法 > javatimer使用方法

javatimer使用方法

发布时间:2022-09-26 19:37:32

❶ 请问JAVA中,怎么设置程序的运行间隔,Timer应该怎么用


publicclasstimerextendsThread
{
publicstaticvoidmain(String[]args)
{
timerrunner=newtimer();
runner.start();
}
publicvoidrun(){
for(inti=0;i<10;i++){
System.out.println(i);
try{
Thread.sleep(1000);//睡眠1000毫秒
}catch(InterruptedExceptione){e.printStackTrace();}
}
}

}

❷ java中怎么实现定时功能

这个是我在网上找的不知道是不是你要的:

java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了。设置定时任务很简单,用Timer类就搞定了。一、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:
package test;
import java.util.Timer;
public class TimeTaskTest {
public static void main(String[] args){ Timer timer = new Timer();
timer.schele(new Task(), 60 * 1000);
}
}
解释一下上面的代码。上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先new一个Timer对象,然后调用它的schele方法,这个方法有四个重载的方法,这里我们用其中一个,
public void schele(TimerTask task,long delay)
首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里 面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask { public void run()
{
System.out.println("定时任务执行");
}
}
我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。第二个参数第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。二、循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schele方法的是另一个重载函数public void schele(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数(看来java里涉及到时间的,跟这个long是脱不了干系了),比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。三、指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schele四个重载的方法还没用完呢。用下面这个就OK了:
public void schele(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schele最后一个重载的方法是public void schele(TimerTask task,Date firstTime,long period)
没必要说什么了吧:)四、j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了,这个easy,就没有必要再写示例代码了吧

❸ java timer wait函数怎么用

Timer 是一种定时器工具,用来在一个后台线程计划执行指定任务,这些任务可以被执行一次,也可以被定期执行。每个 Timer 对象对应一个后台线程,顺序地执行所有计时器任务。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程,从而可能延迟后续任务的执 行。对 Timer 对象最后的引用完成并且所有未处理的任务都已执行完成后,计时器的任务执行线程会正常终止(并且成为垃圾回收的对象)。TimerTask是一个抽象类, 实现了Runable接口,它的子类代表一个可以被Timer计划的任务。

1) 一个简单的Demo,让大家对Timer、TimerTask的使用有感性的认识。

2) Timer和TimerTask的常用api函数说明

这里强调Timer类的schele和scheleAtFixedRate的区别。schele和 scheleAtFixedRate的区别在于,schele以固定的相对时间间隔执行,如果某一次执行被延时了,往后的执行的执行时间也会相对 延时;而scheleAtFixedRate是以绝对的时间间隔执行,如果某一次执行被延时,它的后一次执行的延时将会缩短 (scheleAtFixedRate会把已经过去的时间也作为周期执行)。schele注重的是时间间隔的稳定,而 scheleAtFixedRate注重的是执行频率的稳定。

3) Timer的终止

默认情况下,只要一个程序的timer线程在运行,那么这个程序就会保持运行。当然,你可以通过以下四种方法终止一个timer线程:

a)调用timer的cancle方法。你可以从程序的任何地方调用此方法,甚至在一个timer task的run方法里;

b)让timer线程成为一个daemon线程(可以在创建timer时使用new Timer(true)达到这个目地),这样当程序只有daemon线程的时候,它就会自动终止运行;

c)当timer相关的所有task执行完毕以后,删除所有此timer对象的引用(置成null),这样timer线程也会终止;

d)调用System.exit方法,使整个程序(所有线程)终止。

总结:Timer和TimerTask可以简单理解为Timer定时器在触发TimerTask任务调用,通常用schele和 scheleAtFixedRate方法来调用timertask任务,cancle来终止任务调用。Timer简单易用,比较适合提供轻量级的计时 器功能,但是对时效性很强的任务调度请用其它方法来实现(正如javadoc所述”Timer does not offer real-time guarantees: it scheles tasks using the Object.wait(long) method”)。

❹ java timer类自动执行

javax.swing.Timer

在指定时间间隔触发一个或多个 ActionEvent。一个示例用法是动画对象,它将 Timer 用作绘制其帧的触发器。

设置计时器的过程包括创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start 方法启动该计时器。例如,以下代码创建并启动一个每秒(该时间由 Timer 构造方法的第一个参数指定)触发一次动作事件的计时器。Timer 构造方法的第二个参数指定接收计时器动作事件的侦听器。

int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
}
};
new Timer(delay, taskPerformer).start();构造 Timer 时要指定一个延迟参数和一个 ActionListener。延迟参数用于设置初始延迟和事件触发之间的延迟(以毫秒为单位)。启动了计时器后,它将在向已注册侦听器触发第一个 ActionEvent 之前等待初始延迟。第一个事件之后,每次超过事件间延迟时它都继续触发事件,直到被停止。

构造之后,可以单独更改初始延迟和事件间延迟,并且可以添加其他 ActionListener。

如果希望计时器只在第一次时触发然后停止,可以对计时器调用 setRepeats(false)。

尽管所有 Timer 都使用一个共享线程(由第一个执行操作的 Timer 对象创建)执行等待,但是 Timer 的动作事件处理程序还会在其他线程(事件指派线程上)执行。这意味着 Timer 的操作处理程序可以安全地在 Swing 组件上执行操作。但是,它也意味着处理程序必须快速执行以保证 GUI 作出响应。

在 1.3 版本中,向 Java 平台添加了另一个 Timer 类:java.util.Timer。该类和 javax.swing.Timer 的基本功能相同,但是 java.util.Timer 更常用,功能更多。javax.swing.Timer 有两个特征,它们可以让使用 GUI 更方便。首先,其事件处理程序都是 GUI 程序员所熟悉的,并且可以更简单地处理事件指派线程。第二,其自动线程共享意味着不必采取特殊步骤来避免生成过多线程。相反,计时器使用同一个线程让光标闪烁、使工具提示显示等等。

new Timer().schele(new TimerTask(){
public void run() {
System.exit(0);
}}, 5000);
5秒后自动运行run里的内容,如果setRepeats(ture),5秒一个周期的自动运行。

❺ java中Timerr如何使用

//是Timer计时器吧,
//创建对象
Timer time = new Timer();
//计时器重复任务对象
TimerTask task = new TimerTask() {
/**
* 实现计时器对象的接口方法
*/
@Override
public void run() {
//这里需要重复运行的代码快
}
};
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
time.schele(task, 300, 300);
这是重复的一个计时器用法,其他的可以直接查看jdk文档帮助.

❻ java timer 用法

import java.util.Timer;

public class TimerTest1 {

static class MyTask extends java.util.TimerTask {
public void run() {
System.out.println("开始");
}

}

static class Shutdown extends java.util.TimerTask {
Timer timer = null;

public Shutdown() {
}

public Shutdown(Timer mytimer) {

timer = mytimer;
}

public void run() {
System.out.println("结束");
timer.cancel();// 使用这个方法退出任务
}

}

public static void main(String[] args) {
Timer timer = new Timer();
timer.schele(new MyTask(), 1000);// 在1秒后执行此任务
timer.schele(new Shutdown(timer), 3000);// 在3秒后执行此任务
}

}

❼ java如何让一个定时器终止一段时间

java中让定时器终止的方法是使用timer的cancel方法,实例如下:

importjava.util.Timer;
importjava.util.TimerTask;

publicclassMain{
Timertimer;

publicMain(intseconds){
timer=newTimer();
timer.schele(newToDoTask(),seconds*1000);//定时器开始执行
}

classToDoTaskextendsTimerTask{
publicvoidrun(){
System.out.println("working");
timer.cancel();//定时器终止
}
}

publicstaticvoidmain(Stringargs[]){
newMain(5);
}
}

❽ 用java里timer执行定时任务,怎么写

Timer
timer
=
new
Timer();
timer.schele(new
MyTask(),
firstTime,
24*60*60*1000L);
timer.schele(new
MyTask(),
secondTime,24*60*60*1000L);
timer.schele(new
MyTask(),
ThirdTime,
24*60*60*1000L);
其中三个时间分别为一天的8:00/12:00/14:00点,可以用SimpleDateFormat类

❾ java timer怎么才配置具体的定时任务去调用方法去执行呢

TimerTask那定义一个变量 private static boolean going = false; 然后修改run方法 public void run() { if (going)return; going = true; //做你的事情 going = false; } 这个可以保证2秒执行一次,如果一次任务超过两秒,下一次执行会在开始就结束。等待两秒后再检查 如果希望前一次任务若超过两秒,后一次直接在前一次执行结束立即开始 可以换用Thread Thread t = new Thread(){ private static boolean going = true; public void run() { while(going){ int start = System.currentTimeMillis(); //做你的事 int cost = System.currentTimeMillis() - start; if (cost < 2000) { try{ sleep(2000 - cost); }catch(Exception ex){} } } } }; t.start();

❿ java里swing包里 timer方法 怎么用

str =((JBotton)e).getText();
if("上一个".equals(str)){

这样就可以

阅读全文

与javatimer使用方法相关的资料

热点内容
高冰种翡翠原石鉴别方法图解 浏览:399
租房喝水的正确方法 浏览:819
月见草油的功效与作用及食用方法 浏览:4
玉树菇食用方法 浏览:955
子宫上长了瘤子消除最佳方法 浏览:476
led灯接线柱焊接方法视频 浏览:657
ipad如何隔空手势操作方法 浏览:423
如何起小运的方法 浏览:373
有什么草本方法祛痘 浏览:307
北京幼儿教育方法培训班哪里有 浏览:586
用什么方法可以去除手机后面杂质 浏览:458
光纤测量尺的使用方法 浏览:376
矶竿不带漂的使用方法 浏览:663
如何与异性正确相处方法 浏览:789
不合格模具回收方法有哪些 浏览:927
八门运用最佳化解方法 浏览:27
养猪的正确方法图片 浏览:600
骨架稳定的正确锻炼方法 浏览:127
离散型数据适合什么方法分析 浏览:386
ph的测量方法必须满足的条件 浏览:350