首頁 > Java > java教程 > 主體

我們如何在Java中實作一個計時器線程?

WBOY
發布: 2023-08-30 14:49:04
轉載
1034 人瀏覽過

我們如何在Java中實作一個計時器線程?

Timer類別安排任務在給定時間執行一次或重複。它還可以作為守護線程在後台運行。要將 Timer 與守護執行緒關聯起來,需要使用一個帶有布林值的建構子。計時器以固定延遲固定速率安排任務。在固定延遲下,如果任何一個執行被系統GC延遲,則其他執行也會延遲,並且每次執行都會延遲對應於先前的執行。在固定速率下,如果任何執行被系統GC延遲,則連續發生2-3次執行以覆蓋與第一次執行開始時間相對應的固定速率。 Timer 類別提供了 cancel() 方法來取消計時器。當呼叫該方法時,定時器終止。 Timer 類別僅執行實作 TimerTask 的任務。

範例

import java.util.*;
public class TimerThreadTest {
   public static void main(String []args) {
      Task t1 = new Task("Task 1");
      Task t2 = new Task("Task 2");
      Timer t = new Timer();
      t.schedule(t1, 10000); <strong>//  executes for every 10 seconds</strong>
      t.schedule(t2, 1000, 2000); <strong>// executes for every 2 seconds</strong>
   }
}
class Task extends TimerTask {
   private String name;
   public Task(String name) {
       this.name = name;
   }
   public void run() {
      System.out.println("[" + new Date() + "] " + name + ": task executed!");
   }
}
登入後複製

輸出

[Thu Aug 01 21:32:44 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:46 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:48 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:50 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:52 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:53 IST 2019] Task 1: task executed!
[Thu Aug 01 21:32:54 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:56 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:58 IST 2019] Task 2: task executed!
[Thu Aug 01 21:33:00 IST 2019] Task 2: task executed!
登入後複製

以上是我們如何在Java中實作一個計時器線程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!