-
11111
查看全部 -
任務執行時間超出執行周期間隔
查看全部 -
任務執行時間超出執行周期間隔
查看全部 -
public class ScheduleAtFixedRateTest {
public static void main(String[] args) {
//規定時間格式
final SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//獲取當前的具體時間
Calendar calendar = Calendar.getInstance();
System.out.println("Current time is: " + sf.format(calendar.getTime()));
//設置成6秒前的時間,若當前時間為2018-3-17 16:03:30,那么設置之后時間變成2018-3-17 16:03:24
calendar.add(Calendar.SECOND, -6);
Timer timer = new Timer();
//第一次執行時間為6秒前,之后每隔兩秒執行一次
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//打印當前的計劃執行時間
System.out.println("Scheduled exec time is: " + sf.format(scheduledExecutionTime()));
System.out.println("task is being executed!");
}
}, calendar.getTime(), 2000);
}
}
查看全部 -
首次計劃執行時間早于當前時間
查看全部 -
首次計劃執行時間早于當前時間
查看全部 -
scheduleAtFixedRate:下次開始執行的時間以上次run方法開始時間為基準。
查看全部 -
schedule:下次開始執行的時間以上次run方法完成時間為基準。
查看全部 -
scheduleAtFixedRate:同樣時間回到過去,但是開始執行多次到達正常時間,然后間隔時間輸出。
查看全部 -
schedule:時間回到過去,但是開始執行時以一次到達正常時間,然后間隔時間輸出。
查看全部 -
Timer 的缺陷:
???? 1 并發操作時的缺陷,這是因為 Timer 的后臺只有一個執行線程導致的。
???? 2 當任務拋出異常時的缺陷。如果 TimeTask 拋出 RuntimeException,Timer 會停止所有任務的執行。
根據缺陷,我們可以得出 Timer 的使用禁區。
????1 對時效性要求較高的多任務并發作業,雖然 Timer 支持多任務執行,但那都是串行執行的。
????2 對復雜的任務的調度,因為在復雜的任務中可能會出現異常,而Timer 中一旦出現異常,則停止執行。
查看全部 -
Timer定義:有且僅有一個一個后臺線程對多個業務線程進行定時定頻率的調度。
Timer 組件: Timer 主體類和 TimeTask 實現類。
Timer 中包含一個 Time Task 的隊列 和 一個 TimeThread 后臺線程。
查看全部 -
1.管理并發任務的缺陷:
每次有且僅有一個線程去執行定時任務,如存在多任務會導致任務時間過長(串行)
2.當任務拋出異常時的缺陷:
當拋出RuntimeException(如果不捕捉異常),會停止所有任務
3.在以下情況禁止使用
對時效性要求較高的多任務并發作業
對復雜的任務的調度
查看全部 -
使用禁區。
查看全部 -
缺陷2.。
查看全部
舉報