Java併發庫(二) 傳統定時器技術回顧

2021-07-09 04:01:26 字數 1132 閱讀 6944

02.

傳統定時器技術回顧

傳統定時器的建立:直接使用定時器類timer【輕鬆實現定時關機或者過多長時間關機】

a、過多長時間後炸

new timer().schedule(timertask定時任務, date time定的時間);

b、過多長時間後炸,以後每隔多少時間再炸

newtimer().schedule(timertask定時任務, long延遲(第一次執行)時間, long間隔時間);

timertask與runnable類似,有乙個run方法

timer是定時器物件,到時間後會觸發炸彈(timertask)物件

問題:2秒後炸,**後每隔3秒再炸一次

定時器2秒後炸,炸彈裡還有定時器(每3秒炸一次)

問題延伸:

上面的問題延伸,母彈炸過後,子彈每隔3秒炸一次,再每隔8秒炸一次

1、在mytimertask內部定義乙個靜態變數記錄炸彈號,在run方法內將炸彈號加1,每次產生新炸彈,號碼就會加1,根據炸彈號判斷是3秒炸還是8秒炸。

注意:內部類中不能宣告靜態變數

定義乙個靜態變數private static count = 0;

在run方法內部:count=(count+1)%2;

將定時器的時間設定為:2000+2000*count

2、用兩個炸彈來完成,a炸彈炸完後啟動定時器安裝b炸彈,b炸彈炸完後也啟動乙個定時器安裝a炸彈。

定時器還可以設定具體時間,如某年某月某日某時……可以設定周一到周五做某事,自己設定的話需要換算日期時間,可以使用開源工具quartz來完成。

或者參見:

public class traditionaltimertest 

}, 10000,3000);*/

class mytimertask extends timertask

}*/new mytimertask(),2000+2000*count);

}}

new timer().schedule(new mytimertask(), 2000);

while(true) catch (interruptedexception e)

} }}

java併發 傳統執行緒技術中的定時器技術

傳統執行緒技術中有個定時器,定時器的類是timer,我們使用定時器的目的就是給它安排任務,讓它在指定的時間完成任務。所以先來看一下timer類中的方法 主要看常用的timertask 方法 返回值方法名 方法描述 void schedule timertask task,long delay 安排在...

java併發程式設計(1) 傳統多執行緒技術

1.傳統兩種方式實現執行緒 package com.qunar.thread public class traditionalthread catch interruptedexception e system.out.println thread.currentthread getname sys...

JAVA併發程式設計(二)

一.可見性 讀操作能實時的看到寫操作最新寫入的值。在單執行緒中,讀操作總能得到寫操作寫入的值 但在多執行緒中,如果讀操作跟寫操作在不同的執行緒中執行,那麼讀操作將不一定能適時的看到其他執行緒寫入的值。二.重排序 在沒有使用同步的情況下,編譯器 處理器 執行時都有可能做操作的執行順序進行一些調整。三....