您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java中的scheduleAtFixedRate怎么使用”,在日常操作中,相信很多人在Java中的scheduleAtFixedRate怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中的scheduleAtFixedRate怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
task-所要安排的任務 time-首次執行任務的時間 period-執行一次task的時間間隔,單位毫秒
作用:時間等于或超過time首次執行task,之后每隔period毫秒重復執行task
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class MyTimerTask extends TimerTask { @Override public void run() { Calendar calendar = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss"); System.out.println("Current Time:"+format.format(calendar.getTime()));//獲取當前系統時間 System.out.println("NO.1"); } public static void main(String[] args) { MyTimerTask task = new MyTimerTask(); Calendar calendar = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss"); System.out.println(format.format(calendar.getTime())); calendar.add(Calendar.SECOND,3);//獲取距離當前時間3秒后的時間 Timer timer = new Timer(); timer.scheduleAtFixedRate(task,calendar.getTime(),2000); } }
task-所要執行的任務 delay-執行任務的延遲時間,單位毫秒 period-執行一次task的時間間隔
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class MyTimerTask extends TimerTask { @Override public void run() { Calendar calendar = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss"); System.out.println("Current Time:"+format.format(calendar.getTime()));//獲取當前系統時間 System.out.println("NO.1"); } public static void main(String[] args) { MyTimerTask task = new MyTimerTask(); Calendar calendar = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss"); System.out.println(format.format(calendar.getTime())); calendar.add(Calendar.SECOND,3);//獲取距離當前時間3秒后的時間 Timer timer = new Timer(); //timer.scheduleAtFixedRate(task,calendar.getTime(),2000); timer.scheduleAtFixedRate(task,1000,2000); } }
1)scheduleAtFixedRate:可以傳入runnable,定制第一次的初始化執行時間,周期時間,單位時間-------創建并執行一個周期性任務,過了給定的初始延遲時間(1min執行一次or其他時間),會第一次被執行。執行過程中發生異常,任務停止。
2)scheduleWithFixedDelay:和上一種相類似-----創建并執行周期性任務,第一次執行及異常情況
A:1s中執行一個任務,每個任務執行時間500ms====兩種無區別
B:執行任務時間過長,如間隔時間是1s,而執行時間3s====該情況下有區別,主要在周期時間的區別
scheduleWithFixedDelay該方法中一次任務執行時長超過周期時間,下一次任務會在該次任務執行結束時間基礎上,計算執行延時(舉例子:如間隔時間是1s,而執行時間3s,當前10:03時觸發執行,理論而言,10:04時應當執行新任務,但通過該方法執行,執行結束時為10:06,在10:06的基礎上延遲1s執行新任務)
scheduleAtFixedRate該方法(舉例子:如間隔時間是1s,而執行時間3s,當前10:03時觸發執行,10:06執行結束,10:04及10:05累積的任務會立刻執行,而非在10:06的基礎上增加延時時間)
到此,關于“Java中的scheduleAtFixedRate怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。