java 延遲並具有週期性的任務

2021-08-30 12:02:08 字數 1670 閱讀 7137

1、timer工具管理任務的延遲執行以及週期執行。但是timer存在一些缺陷。可以使用scheduledthreadpollexecutor做為代替品。

2、scheduledthreadpollexecutor可以提供多個執行緒來執行延遲、並具週期性任務。

3、如果你構建自己的排程服務,仍然可以使用類庫提供的delayqueue,它是blockingqueue的實現,為schedthreadpoolexecutor提供了排程功能。delayqueue管理著乙個包含delayed物件的容器。

4、public inte***ce callable{

v call() throw***eception;

public inte***ce future{

boolean cancel(booleanmayinterruptifrunning);

boolean iscanceled();

boolean isdone();

v get() throwsinterruptedexeception,executionexception,cancellationexception;

v get(long timeout,timeunitunit) throwsinterruptedexception,executionexception,cancelationexception,timeroutexception;

5、有很多方法可以建立乙個描述任務的future。executorservice中的所有submit方法都返回乙個future,可以將乙個runnable或乙個callable提交給executor,然後得到乙個future,用它來重新獲得任務執行的結果,或者取消任務。

6、你可以顯式地為給定的runnable或callable例項化乙個futuretask。將runnable或callable提交到executor的行為可以建立乙個安全發布。

public class futurerender{

private final executorservice executor=...;

void renderpage(charsequence source){

final listimageeinfos=scanforimageinfo(source);

callable>task=

newcallable>(){

publiclistcall(){

listresult=newarraylist();

for(imageinfo imageinfo:imageinfos)

result.add(imageinfo.downloadimage());

future>future=executor.submit(task);

rendertext(source);

try{

listimagedata=future.get();

for (imagedata data:imagedata)

renderimage(data);

catch (interruptedexception e){

thread.currentgthread().interrupt();

future.cancel(true);

catch (executionexception e)(throwlaunderthrowable(e.getcause));

週期性任務計畫

一次性任務計畫 at,batch 週期性任務計畫 crontab,anacron 一次性任務計畫 at 互動式 讓使用者在 at 提示符輸入多個要執行命令 批處理 讓任務的個命令寫入檔案由 at進行呼叫 at命令 語法 at option time time hh mm yyyy mm dd noo...

設定週期性任務

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 service crond start 啟動服務 service crond stop 關閉服務 service crond res...

Linux中週期性任務

用途 按照設定的時間間隔為使用者反覆執行某一項固定的系統任務 軟體包 cronie crontabs 系統服務 crond 日誌檔案 var log crond 啟動計畫任務,並且設定開機自啟 root openstack systemctl enable crond 檢視 crontab l cr...