Java多執行緒核心技術 五 定時器Timer

2021-07-27 14:54:50 字數 1389 閱讀 1681

timer類主要負責計畫任務的功能,也就是在指定的時間開始執行某乙個任務。

方法schedule(timertask task,date time)的作用是在指定的日期執行一次某一任務。

如下**是執行時間晚於當前時間的示例:

public class testclass

} public static void main(string args) throws interruptedexception catch (parseexception e) }}

執行結果如下:

當計畫執行任務的時間早於當前時間時,則立即執行task任務。

timertask是以佇列的方式乙個乙個被順序執行的,所以執行的時間有可能和預期的時間不一致,因為前面的任務有可能消耗的時間較久,則後面的任務執行的時間也會被延遲。

方法schedule(timertask task,date firsttime,long period)的作用是在指定的日期之後,按指定的間隔周期性地無限迴圈地執行某一任務。

timertask類中的cancel()方法的作用是將自身從任務佇列中清除。

timer類中的cancel()方法的作用是將任務佇列中的全部任務清空。

方法schedule(timertask task,long delay)的作用是以執行schedule(timertask task,long delay)方法當前的時間為參考時間,在此時間基礎上延遲指定的毫秒數後執行一次timertask任務。

方法schedule(timertask task,long delay,long period)的作用是以執行此方法的當前時間為參考時間,在此時間基礎上延遲指定的毫秒數,再以某一間隔時間無限次數地執行某一任務。

注:如果計畫任務的執行時間早於當前時間,則schedule不會執行時間差內的任務,而 scheduleatfixedrate會執行時間差內的任務,如下**可測試這一點:

public class testclass

}public static void main(string args) throws interruptedexception catch (parseexception e)

}}

執行結果如下:

把schedule換成scheduleatfixedrate,結果如下:

多執行緒核心技術 多執行緒技能

1 建立執行緒的方法 繼承thread,實現runnable 注意 例項變數與執行緒安全 2 具體方法 isalive 判斷執行緒狀態,進入準備生命週期的執行緒返回true sleep 睡眠,需要跑出interrupt異常以便執行緒打斷丟擲 如果在sleep的執行緒被打斷,sleep會被設定為fal...

多執行緒核心技術 Lock

多執行緒中可以使用synchronized來進行執行緒同步互斥,在jdk1.5之後引入了reentrantlock類,不僅可以實現synchronized的功能,還進行了拓展,下面簡單寫個demo myservice public class myservice finally mythread p...

《java多執行緒程式設計核心技術》核心筆記 一

執行緒具有優先順序 執行緒的優先順序具有繼承特性。被呼叫者繼承呼叫者的優先順序 優先順序高的執行緒 絕大部分會現執行 方法內的變數是執行緒安全的。多個執行緒訪問同乙個物件的同步方法時,一定是執行緒安全的。synchronized取得的是物件鎖 多個執行緒訪問乙個物件 synchronized 如果乙...