導航:首頁 > 編程語言 > java的task

java的task

發布時間:2022-08-21 11:41:40

『壹』 java 定時任務怎麼寫呀

對於這樣的操作最方便、高效的實現方式就是使用java.util.Timer工具類。

privatejava.util.Timertimer;//給你標注一下包,到時候別找錯了
timer=newTimer(true);
timer.schele(
newjava.util.TimerTask(){publicvoidrun()
{//你要定時執行的功能}},0,30*1000);

第一個參數是要操作的功能,一般匿名內部類,第二個參數是要設定延遲的時間,第三個參

數是周期的設定,每隔多長時間執行該操作。

更詳細的內容,自己找API Timer類看看吧

『貳』 java代碼啟動一個定時任務

在應用里經常都有用到在後台跑定時任務的需求。舉個例子,比如需要在服務後台跑一個定時任務來進行非實時計算,清除臨時數據、文件等。在本文里,3種不同的實現方法:
普通thread實現
TimerTask實現
ScheledExecutorService實現

1.普通thread

這是最常見的,創建一個thread,然後讓它在while循環里一直運行著,通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現,代碼如下:

public class Task1 {
public static void main(String[] args) {
// run in a second
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
System.out.println("Hello !!");
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}

2.用Timer和TimerTask

上面的實現是非常快速簡便的,但它也缺少一些功能。
用Timer和TimerTask的話與上述方法相比有如下好處:

當啟動和去取消任務時可以控制
第一次執行任務時可以指定你想要的delay時間

在實現時,Timer類可以調度任務,TimerTask則是通過在run()方法里實現具體任務。
Timer實例可以調度多任務。
當Timer的構造器被調用時,創建了一個線程,這個線程可以用來調度任務:

import java.util.Timer;
import java.util.TimerTask;
public class Task2 {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
// task to run goes here
System.out.println("Hello !!!");
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
// scheles the task to be run in an interval
timer.scheleAtFixedRate(task, delay,
intevalPeriod);
} // end of main
}

3.ScheledExecutorService

ScheledExecutorService是從Java SE 5的java.util.concurrent里,做為並發工具類被引進的,這是最理想的定時任務實現方式。
相比於上兩個方法,它有以下好處:

相比於Timer的單線程,它是通過線程池的方式來執行任務的
可以很靈活的去設定第一次執行任務delay時間
提供了良好的約定,以便設定執行的時間間隔

通過ScheledExecutorService#scheleAtFixedRate展示這個例子,通過代碼里參數的控制,首次執行加了delay時間:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheledExecutorService;
import java.util.concurrent.TimeUnit;
public class Task3 {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
public void run() {
// task to run goes here
System.out.println("Hello !!");
}
};
ScheledExecutorService service = Executors
.();
service.scheleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
}

『叄』 Java按下面要求編寫一個類Task01

代碼如下:

望採納

『肆』 java定時任務怎麼實現

/**
* 普通thread
* 這是最常見的,創建一個thread,然後讓它在while循環里一直運行著,
* 通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現,代碼如下:
* @author GT
*
*/
public class Task1 {
public static void main(String[] args) {
// run in a second
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
System.out.println("Hello !!");
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
[java] view plain
import java.util.Timer;
import java.util.TimerTask;
/**
*
* 於第一種方式相比,優勢 1>當啟動和去取消任務時可以控制 2>第一次執行任務時可以指定你想要的delay時間
*
* 在實現時,Timer類可以調度任務,TimerTask則是通過在run()方法里實現具體任務。 Timer實例可以調度多任務,它是線程安全的。
* 當Timer的構造器被調用時,它創建了一個線程,這個線程可以用來調度任務。 下面是代碼:
*
* @author GT
*
*/
public class Task2 {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
// task to run goes here
System.out.println("Hello !!!");
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
// scheles the task to be run in an interval
timer.scheleAtFixedRate(task, delay, intevalPeriod);
} // end of main
}
[java] view plain
import java.util.concurrent.Executors;
import java.util.concurrent.ScheledExecutorService;
import java.util.concurrent.TimeUnit;
/**
*
*
* ScheledExecutorService是從Java SE5的java.util.concurrent里,做為並發工具類被引進的,這是最理想的定時任務實現方式。
* 相比於上兩個方法,它有以下好處:
* 1>相比於Timer的單線程,它是通過線程池的方式來執行任務的
* 2>可以很靈活的去設定第一次執行任務delay時間
* 3>提供了良好的約定,以便設定執行的時間間隔
*
* 下面是實現代碼,我們通過ScheledExecutorService#scheleAtFixedRate展示這個例子,通過代碼里參數的控制,首次執行加了delay時間。
*
*
* @author GT
*
*/
public class Task3 {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
public void run() {
// task to run goes here
System.out.println("Hello !!");
}
};
ScheledExecutorService service = Executors
.();
// 第二個參數為首次執行的延時時間,第三個參數為定時執行的間隔時間
service.scheleAtFixedRate(runnable, 10, 1, TimeUnit.SECONDS);
}
}

『伍』 java task 定時任務怎麼測試

通過debug 來測試.也可以用 jUtils 工具包來測試

『陸』 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 task類庫是什麼

執行循環性的任務,這個類會單獨開啟新線程執行任務。如鬧鍾,5分鍾提醒一次。

『捌』 在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的task相關的資料

熱點內容
度人經pdf 瀏覽:898
怎麼配置android遠程伺服器地址 瀏覽:956
java程序員看哪些書 瀏覽:939
什麼app可以免費和外國人聊天 瀏覽:793
pdf手寫筆 瀏覽:178
別永遠傷在童年pdf 瀏覽:986
愛上北斗星男友在哪個app上看 瀏覽:418
主力散戶派發源碼 瀏覽:667
linux如何修復伺服器時間 瀏覽:57
榮縣優途網約車app叫什麼 瀏覽:475
百姓網app截圖是什麼意思 瀏覽:225
php如何嵌入html 瀏覽:813
解壓專家怎麼傳輸 瀏覽:744
如何共享伺服器的網路連接 瀏覽:134
程序員簡易表白代碼 瀏覽:168
什麼是無線加密狗 瀏覽:64
國家反詐中心app為什麼會彈出 瀏覽:69
cad壓縮圖列印 瀏覽:104
網頁打開速度與伺服器有什麼關系 瀏覽:865
android開發技術文檔 瀏覽:65