Java定時任務的描述講解
一、簡介
在Java中一個完整定時任務需要由Timer、TimerTask兩個類別來配合完成。 API中是這樣定義他們的,Timer:一種工具,執行緒用其安排以後在後台執行緒執行的任務。可安排任務執行一次,或定期重複執行。由TimerTask:Timer 安排為一次執行或重複執行的任務。我們可以這樣理解Timer是一種計時器工具,用來在一個後台執行緒計畫執行指定任務,而TimerTask一個抽象類,它的子類別代表一個可以被Timer計畫的任務。
Timer類別
在工具類別Timer中,提供了四個建構方法,每個建構方法都啟動了計時器線程,同時Timer類別可以保證多個執行緒可以共用單一Timer物件而無需進行外部同步,所以Timer類別是線程安全的。但是由於每個Timer物件對應的是單一後台線程,用於順序執行所有的計時器任務,一般情況下我們的線程任務執行所消耗的時間應該非常短,但是由於特殊情況導致某個定時器任務執行的時間太長,那麼他就會「獨佔」計時器的任務執行線程,其後的所有線程都必須等待它執行完,這就會延遲後續任務的執行,使這些任務堆積在一起,具體情況我們後面分析。
當程式初始化完成Timer後,定時任務就會按照我們設定的時間去執行,Timer提供了schedule方法,該方法有多中重載方式來適應不同的情況,如下:
schedule(TimerTask task, Date time):安排在指定的時間執行指定的任務。
schedule(TimerTask task, Date firstTime, long period) :安排指定的任務在指定的時間開始進行重複的固定延遲執行。
schedule(TimerTask task, long delay) :安排在指定延遲後執行指定的任務。
schedule(TimerTask task, long delay, long period) :安排指定的任務從指定的延遲後開始進行重複的固定延遲執行。
同時也重載了scheduleAtFixedRate方法,scheduleAtFixedRate方法與schedule相同,只不過他們的重點不同,區別後面分析。
scheduleAtFixedRate(TimerTask task, Date firstTime, long period):安排指定的任務在指定的時間開始進行重複的固定速率執行。
scheduleAtFixedRate(TimerTask task, long delay, long period):安排指定的任務在指定的延遲後開始進行重複的固定速率執行。
TimerTask
TimerTask類別是抽象類別,由Timer 安排為一次執行或重複執行的任務。它有一個抽象方法run()方法,該方法用於執行對應計時器任務要執行的操作。因此每一個特定的任務類別都必須繼承TimerTask,然後重寫run()方法。
另外它有兩個非抽象的方法:
boolean cancel():取消此計時器任務。
long scheduledExecutionTime():傳回此任務最近實際執行的安排執行時間。
二、實例:
Naims_task.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/jee/spring-jee-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/task/spring-task-4.0.xsd"><task:annotation-driven /> <!-- 定时器开关--> <bean id="myTask" class="com.wisoft.jazwfw.convenienceServices.controller.ConvenienceServicesController"></bean> <task:scheduled-tasks> <!-- 这里表示的是每天23点59分执行一次 --><task:scheduled ref="myTask" method="getPubService" cron="0 59 23 * * ?" /> <!-- 这里表示的是每隔十秒执行一次 --><!-- <task:scheduled ref="myTask" method="print" cron="*/10 * * * * ?"/> --> </task:scheduled-tasks> <!-- 自动扫描的包名 --> <context:component-scan base-package="com.wisoft.jazwfw.convenienceServices.controller" /> </beans>
然後在Naims_main.xml引入
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><import resource="spring/Naims_ws.xml" /><import resource="spring/Naims_bo.xml" /><import resource="spring/Naims_dao.xml"/><import resource="spring/Naims_params.xml"/><import resource="spring/Naims_task.xml"/></beans>
#
以上是Java定時任務的描述講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

恐怖走廊是模擬山羊3之中的一個任務,這個任務要怎麼樣才能夠去完成呢,掌握到詳細的過關方式和對應的流程,能夠完成這個任務的相應挑戰,下面就為大家帶來模擬山羊3恐怖走廊攻略,了解相關的資訊。模擬山羊3恐怖走廊攻略1、首先需要玩家前往地圖左上角的寂靜嶺處。 2.在這裡可以看到一個屋頂上寫著RESTSTOP的房子,玩家需要操作山羊進入這棟房子。 3.進入房間之後,我們先向前直走,然後向右轉,在這裡盡頭有一扇門,我們直接從這裡進去。 4.進入之後同樣是先向前走隨後右轉,在這裡走到門前門會關上,我們需要回頭找到

要自動化任務和管理多個系統,任務規劃軟體是您武器庫中的寶貴工具,尤其是對於系統管理員而言。 Windows任務規劃程式完美地完成了這項工作,但最近許多人報告說操作員拒絕了請求錯誤。這個問題存在於作業系統的所有迭代中,即使已經廣泛報告和涵蓋,也沒有有效的解決方案。繼續閱讀以找到真正對其他人有用的內容!操作員或管理員拒絕了任務計畫程式0x800710e0中的請求是什麼?任務計劃程式允許在沒有使用者輸入的情況下自動執行各種任務和應用程式。您可以使用它來安排和組織特定應用程式、配置自動通知、幫助傳遞訊息等。它

模擬山羊3是有著經典模擬玩法的遊戲,可讓玩家充分體驗到休閒動作類操作模擬的樂趣,遊戲中還擁有很多特色任務的精彩,其中模擬山羊3帝陵任務是需要玩家找尋到鐘塔上的三個鐘並操作的,有些玩家還不清楚要怎麼弄,下面帶來模擬山羊3帝陵任務攻略流程分享!模擬山羊3帝陵任務攻略流程按照順序敲擊鐘即可。詳細步驟拓展1、首先玩家需要打開地圖到霧丘公墓。 2.然後上到鐘樓上,裡面會有三個鐘。 3.接著按照從大到小的順序,依照222312312熟悉怒敲擊。 4、完成敲擊後即可完成任務,並打開大門以獲得光劍。

營救史蒂夫是模擬山羊3中的一個獨特任務,具體需要怎麼做才能夠完成呢,這個任務比較簡單,但是我們需要注意不要理解錯意思,下面就為大家帶來模擬山羊3營救史蒂夫任務攻略,能夠更好的完成相關的任務。模擬山羊3營救史蒂夫任務攻略1、先來到地圖中右下角的溫泉。 2.在來到溫泉邊之後就可以觸發營救史蒂夫的這個任務。 3.注意在溫泉裡有個男人,雖然他也叫史蒂夫,但是並不是這次任務的目標。 4.在這個溫泉裡找到一條叫史蒂夫的魚,並且將其帶上岸,即可完成這個任務。

抖音作為當下最受歡迎的社群媒體平台之一,吸引了大量用戶參與其中。在抖音上,有許多粉絲團任務可供用戶完成,以獲得一定的獎勵和福利。那麼,抖音粉絲團任務在哪裡可以找到呢?一、抖音粉絲團任務在哪裡看?為了找到抖音粉絲團任務,你需要造訪抖音的個人首頁。在主頁上,你會看到一個名為「粉絲團」的選項。點擊這個選項,你就可以瀏覽你所加入的粉絲團和相關任務。在粉絲團任務欄位中,你會看到各種不同類型的任務,例如按讚、留言、分享、轉發等。每個任務都有對應的獎勵和要求,一般來說,完成任務後會獲得一定數量的金幣或經驗值

如何在Windows11和Windows10中暫停工作管理員進程更新按CTRL+視窗鍵+刪除開啟工作管理員。預設情況下,任務管理器將開啟「進程」視窗。正如您在此處看到的,所有應用程式都在無休止地移動,當您想要選擇它們時,可能很難將它們指向下方。因此,按CTRL並按住它,這將暫停任務管理器。您仍然可以選擇應用程序,甚至可以向下捲動,但您必須始終按住CTRL按鈕。

實現任務通用是深度學習基礎模型研究的核心問題,也是近期大模型方向的主要關注點之一。然而,在時間序列領域,各類分析任務的差異較大,既有需要細粒度建模的預測任務,也有需要擷取高層語意資訊的分類任務。如何建構統一的深度基礎模型有效率地完成各類時序分析任務,此前尚未有成型方案。為此,來自清華大學軟體學院的團隊圍繞時序變化建模這一基本問題展開研究,提出了任務通用的時序基礎模型TimesNet,論文被ICLR 2023接收。作者列表:吳海旭*,胡騰戈*,劉雍*,週航,王建民,龍明盛連結:https://ope

凍結或無響應的程式很容易從任務管理器中殺死。但是Microsoft最近為使用者提供了直接從工作列終止這些任務的便利性。雖然該選項並未向所有人推出,但如果您有WindowsInsider版本,則很容易取得。以下是啟用「結束任務」按鈕並從工作列關閉任務所需的一切。如何從工作列中取得「結束工作」按鈕以殺死應用程式目前,為工作列應用啟用「結束工作」按鈕的選項僅作為具有Windows預覽體驗成員版本的使用者的開發人員選項提供。但是,這在即將推出的功能更新中可能會發生變化,因為它將在穩定版本上向全球用戶推出。如果您尚
