❶ java中 如何使用延遲
JAVA中使用延遲主要有以下兩種方法:
1、使用Timer類
Timer類的schele方法可以按照時間計劃執行程序。
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new MyTimerTask();
timer.schele(timerTask, 10000, 10000);
}
schele方法中需要傳入一個TimerTask類型的對象,該對象需要繼承並實現TimerTask類的run方法,或者以匿名內部類的方式實現run方法。schele的第二個參數為程序第一次執行run方法的延時時間,第三個參數為執行完第一次run方法後延時循環執行run方法的時間。例如,上面的程序就是延時10s執行timerTask的run方法,執行完畢之後每隔10s執行一次run方法。
實現了run方法後就會根據schele設置的時間計劃來執行。schele的參數也可以不要循環時間,只延時執行一次,還有多種重載的schele方法,可以根據實際情況使用。
2、使用Thread
Thread.currentThread().sleep(10000);
使線程暫停一段時間。
❷ 如何在JAVA中每隔一段時間執行一段程序
可以用線程來做,每隔幾秒開一個線程
代碼如下
public void runTask() {
final long timeInterval = 120000;// 兩分鍾運行一次
final ThreadService threadService = new ThreadService();
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
//你要運行的程序
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
❸ 怎麼用Java實現定時執行某程序
java中設置定時任務用Timer類可以實現。
一、延時執行
首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函數里執行。代碼如下:
package test;
import java.util.Timer;
public class TimeTask {
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)
❹ Java+cron定時任務指定時間後每隔28執行一次
摘要
Cron表達式是一個字元串,字元串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義,Cron有如下兩種語法格式:
❺ 求一個Java定時觸發程序運行的例子
你好,我幫你找到了,你看一下吧,希望對你有用。
在某些時候, 我們需要實現這樣的功能,某一程序隔一段時間執行一次,而這一事情由系統本身來完成,並不是人為的觸發,我們一般可稱此為定時器任務.
這類技術主要應用到那些需要進行後台整理數據的系統中,比如說數據倉儲,數據挖掘等.
其實到Java中,實現起來是非常簡單的,下面我們以每隔5秒鍾打引一句"Hello world"為例:
import java.util.TimerTask;
public class TimeTast extends TimerTask ...{
// 在這里寫你要定時執行的方法
public void run() ...
System.out.println("Hello World!");
}
}
import java.util.Date;
import java.util.Timer;
/** *//**
* 定時器測試
* @author FeGe
*/
public class Test ...{
public void execute() ...{
Timer timer = new Timer();
TimeTast myTimeTask = new TimeTast();
Date date = new Date();
long timestamp = 5000;
/** *//**
* myTimeTask 指定執行的線程 date 指定第一次日期執行的時間 timestamp 指定每格多久再次執行一次
*/
timer.schele(myTimeTask, date, timestamp);
}
public static void main(String[] args) ...{
Test t = new Test();
t.execute();
}
}
一個最簡單的定時器任務就算完成了。是不是太簡單了點呢,其實就這么簡單
❻ java怎麼指定某段代碼在固定時間點前執行
packagethread.timer;
importjava.util.Calendar;
importjava.util.Timer;
importjava.util.TimerTask;
publicclassTimerTest{
publicstaticvoidmain(String[]args){
Timert=newTimer();
TimerTasktask=newTimerTask(){
@Override
publicvoidrun(){
System.out.println("Taskisprocessing.");//此處可以插入自己想運行的代碼片段
}
};
Calendarc=Calendar.getInstance();
c.set(Calendar.MINUTE,26);//時間可以自己設置
t.schele(task,c.getTime());
}
}
❼ java是否可以實現心跳的程序
java是可以實現心跳的程序的。
心跳顧名思義就是每隔一段時間執行,或者輪詢查詢狀態,可以使用timer來實現,代碼如下:
定時器可以實現
//1000毫秒,固定時間,每隔1秒鍾執行一次actionPerformed方法
javax.swing.Timerclock=newjavax.swing.Timer(1000,newActionListener(){
publicvoidactionPerformed(ActionEvente){
//執行心跳方法
/**...*/
//調用其他方法
/**...*/
}
});
clock.start();
可以獨立用個線程管理,也可以直接寫在主線程中
❽ Java 怎麼在指定的時間內執行某一任務
可以通過死循環的方式來進行實現:第一步就是獲取到當前的時間,之後和需要執行的時間進行比較,找出時間差,先讓線程停止,之後到時見開始執行死循環,執行完成之後再設置線程等待時間,之後重復執行即可,代碼舉例如下:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(date);
//此處實現更改為其餘的時間
Thread.sleep(睡覺的時間);
for(;;){
//執行某一個方法
//此處實現更改為其餘的時間
Thread.sleep(睡覺的時間);
}
備註:上面的部分代碼已經有說明,直接根據說明實現即可。這個只是一種簡單的實現思路,通常復雜的都需要quazter來實現。
❾ java中如何每隔一段時間執行一個函數
java.util.Timer
創建一個Timer 然後調用Timer的scheleAtFixedRate函數,需要自己定義要執行的任務,任務運行間隔的時間,和從什麼時間開始執行這個任務,具體可以參考JAVA的API文檔