『壹』 java的timer延时怎么在timetask传参

可以用构造函数

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

publicclassTest{

publicstaticvoidmain(String[]args){
Timertimer=newTimer();
timer.schele(newTest().newTask("123"),0,100);
}

classTaskextendsTimerTask{
privateStringparam;

publicTask(Stringparam){
this.param=param;
}

@Override
publicvoidrun(){
System.out.println(param);
}

}
}

『贰』 java中TimerTask 如何才能停止呢

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

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

Timer有两种执行任务的模式,最常用的是schele,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率.看个简单的例子:
import java.io.IOException;
import java.util.Timer;
public class TimerTest {
public static void main(String[] args){
Timer timer = new Timer();
timer.schele(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class MyTask extends java.util.TimerTask{

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("________");
}
}
}

『叁』 java timerTask定时器的一个问题

劝你别这么搞,人家把你程序关了,你就运行不了。做了也白坐
你那个internal 传入的时候是多回少啊。
scheleAtFixedRate用这答个看看吧。
scheleAtFixedRate
固定速率执行适用于那些对绝对 时间敏感的重复执行活动,如每小时准点打钟报时,或者在每天的特定时间运行已安排的维护活动。它还适用于那些完成固定次数执行的总计时间很重要的重复活动,如倒计时的计时器,每秒钟滴答一次,共 10 秒钟。最后,固定速率执行适用于安排多次重复执行的计时器任务,这些任务相互之间必须保持同步。
schele
固定延迟执行适用于那些需要“平稳”运行的重复执行活动。换句话说,它适用于在短期运行中保持频率准确要比在长期运行中更为重要的活动。这包括大多数动画任务,如以固定时间间隔闪烁的光标。这还包括为响应人类活动所执行的固定活动,如在按住键时自动重复输入字符。
api抄来的,半天没看明白有什么区别,楼主自己看下。明白了也给我说声啊 哈哈

『肆』 在java中timertask是什么类

TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。
Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。该功能和TimerTask配合使用。TimerTask类用于实现由Timer安排的一次或重复执行的某个任务。每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否则会延迟后续的任务执行。
void cancel()
// 终止此计时器,丢弃所有当前已安排的任务。
int purge()
//从此计时器的任务队列中移除所有已取消的任务。
void schele(TimerTask task, Date time)
//安排在指定的时间执行指定的任务。
void schele(TimerTask task, Date firstTime, long period)
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
void schele(TimerTask task, long delay)
//安排在指定延迟后执行指定的任务。
void schele(TimerTask task, long delay, long period)
//安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
void scheleAtFixedRate(TimerTask task, Date firstTime, long period)
//安排指定的任务在指定的时间开始进行重复的固定速率执行。
void scheleAtFixedRate(TimerTask task, long delay, long period)
//安排指定的任务在指定的延迟后开始进行重复的固定速率执行。
+++++++++++++++++++++++++++++++++++++++++++++++++++
boolean cancel()
//取消此计时器任务。
abstract void run()
//此计时器任务要执行的操作。
long scheledExecutionTime()
//返回此任务最近实际 执行的已安排 执行时间。
++++++++++++++++++++++++++++++++++++++++++++++++++++++
package zzs.time.demo;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class MyTask extends TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat simpleDateFormat=null;
simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println("当前的系统时间为:"+simpleDateFormat.format(new Date()));

}

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++
package zzs.time.demo;

import java.util.Timer;

public class TestTask {

/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Timer timer=new Timer();
MyTask myTask=new MyTask();
timer.schele(myTask, 1000, 2000);
// Thread.sleep(5000);
//timer.cancel();

}
}
运行结果:
当前的系统时间为:2011-07-10 15:37:44:831
当前的系统时间为:2011-07-10 15:37:46:786
当前的系统时间为:2011-07-10 15:37:48:786
当前的系统时间为:2011-07-10 15:37:50:786
当前的系统时间为:2011-07-10 15:37:52:786
当前的系统时间为:2011-07-10 15:37:54:786

『伍』 Java TimerTask问题

//在timer.schele(new MyTimerTask(), 1000)后加

try{
Thread.sleep(2000);
}catch(InterruptedException exc){
}
myTimer.cancel();
//让线程挂起2秒(保证打印任务完成)后执版行myTimer.cancel();,让程权序结束。

『陆』 java中定义一个timetask的问题,new了一个timertask后直接加大括号什么意思

timer.schele(timertask t, int n)
t 是一个timertask 对象,没有现成的对象的话,重新实例化一个也是一样的
整个大括号是timer的一个方法,方法名是schele ,t 和n 都是变量

『柒』 java的timertask为什么创建对象时能自动调用run方法

Timer time = new Timer();
time.schele(timeTask,delay);
在延迟delay后执行如果delay为0,就在time.schele(timeTask,delay);后立即执行

『捌』 java timer 一天中4个固定的时间执行Task,但是4个时间之间没有特定的关系是任意的时间,怎么做

最最最简单的方法:建立四个Timer来执行Task,每个Task的执行周期都是一天。

timer.execute(task,waitTime,period);//在某个时间段之后执行任务

『玖』 java timer与timerTask 的问题

声明:我不用swing。
我知道有个swingworker,我的直觉告诉我你似乎应该去好好看看它。版
再者,java.util.Timer的javadoc明确权告诉用户,"固定速率执行适用于安排多个重复执行的计时器任务,这些任务相互之间必须保持同步。"

『拾』 java中timerTask的run()是何时执行的

timer本身维护的是一个队列,就是一个schele调度作业的控制器,如果你设置在某个时间点执行不同的作业可能会有很少的延迟。否则是马上运行。