Timer 定時器__java-並發

來源:互聯網
上載者:User
1.概述

定時執行特定的任務。 2.類與方法 2.1Timer

java.util.Timer

一個Timer對應一個線程。一個Timer可以調度多個任務。若一個任務有異常,可能這個Timer線程就不能正常工作 了,其他的任務也受牽連。一般用它調度輕量級的任務。

java.util.Timer#schedule(java.util.TimerTask task, java.util.Date when)

在特定時間執行一次task。

java.util.Timer#scheduleAtFixedRate(TimerTask task, Date when, long period)

從特定時間開始,每隔period執行一次task。


2.2 TimerTask

java.util.TimerTask

抽象類別,它實現了 Runnable介面。

java.util.TimerTask#cancel()

取消該定時任務。

注意:用過的TimerTask就像穿破的襪子,沒辦法再被Timer調度了。已經被schedule過或cancel過的timerTask都屬於用過的TimerTask。
3.範例程式碼

通用的步驟見下。

1.建立一個繼承自TimerTask類的類A,並重寫run()方法。

2.建立Timer對象,調用schedule()方法並把自訂類A的對象當作實參傳進去。

import java.util.Timer;class TimerTaskTest extends TimerTask {@Overridepublic void run() {System.out.println("3秒一次說聲Hi");}}public class TimerDemo {public static void main(String[] args) {Timer timer = new Timer();//void java.util.Timer.schedule(TimerTask task, long delay, long period)//delay時間後每隔period時間間隔就執行一次task.run()函數 時間單位為millisecondtimer.schedule(new TimerTaskTest(), 0, 3000);}}/* * 3秒一次說聲Hi  * 3秒一次說聲Hi  * 3秒一次說聲Hi  * 3秒一次說聲Hi *  ... */

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.