『壹』 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調度作業的控制器,如果你設置在某個時間點執行不同的作業可能會有很少的延遲。否則是馬上運行。