publicabstractclassTimerTaskextendsObjectimplementsRunnable(由Timer安排為一次執行或重復執行的任務。)2、Timer類的構造方法:構造方法摘要Timer()創建一個新計" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【java多線程與并發庫】--- 定時器的應用

系統 2082 0

定時器的應用

1、 定時器主要涉及到兩個類( java.util 包中)

    
      @-》
    
    
      public class 
      
        Timer
      
       extends 
    
    
      
        Object
      
    
  

(一種工具,線程用其安排以后在后臺線程中執行的任務。可安排任務執行一次,或者定期重復執行。 )

    
      @-->
      
        public abstract class 
        
          TimerTask
        
         extends 
      
    
    
      
        Object
      
    
    
       implements 
    
    
      
        Runnable
      
    
  
    
      (由 Timer 安排為一次執行或重復執行的任務。)
    
  
    
    
  
    
    
  
    
      2、
      
        
          Timer類的構造方法:
        
      
    
  
    
    
  

構造方法摘要

Timer ()
創建一個新計時器。

Timer (booleanisDaemon)
創建一個新計時器,可以指定其相關的線程作為守護程序運行。

Timer ( String name)
創建一個新計時器,其相關的線程具有指定的名稱。

Timer ( String name, booleanisDaemon)
創建一個新計時器,其相關的線程具有指定的名稱,并且可以指定作為守護程序運行。

    
    
  

與每個 Timer 對象相對應的是單個后臺線程,用于順序地執行所有計時器任務。

計時器任務應該迅速完成。如果完成某個計時器任務的時間太長,那么它會“獨占”計時器的任務執行線程。因此,這就可能延遲后續任務的執行,而這些任務就可能“堆在一起”,并且在上述不友好的任務最終完成時才能夠被快速連續地執行。

Timer 對象最后的引用完成后, 并且 所有未處理的任務都已執行完成后,計時器的任務執行線程會正常終止(并且成為垃圾回收的對象)。但是這可能要很長時間后才發生。

默認情況下,任務執行線程并不作為 守護線程 來運行,所以它能夠阻止應用程序終止。如果調用者想要快速終止計時器的任務執行線程,那么調用者應該調用計時器的 cancel 方法。

如果意外終止了計時器的任務執行線程,例如調用了它的 stop 方法,那么所有以后對該計時器安排任務的嘗試都將導致 IllegalStateException ,就好像調用了計時器的 cancel 方法一樣。

此類是線程安全的:多個線程可以共享單個 Timer 對象而無需進行外部同步。

此類 提供實時保證:它使用 Object.wait(long) 方法來安排任務。

實現注意事項:此類可擴展到大量同時安排的任務(存在數千個都沒有問題)。在內部,它使用二進制堆來表示其任務隊列,所以安排任務的開銷是 O(log n),其中 n 是同時安排的任務數。

實現注意事項:所有構造方法都啟動計時器線程。

方法摘要

void

cancel ()
終止此計時器,丟棄所有當前已安排的任務。

int

purge ()
從此計時器的任務隊列中移除所有已取消的任務。

void

schedule ( TimerTask task, Date time)
安排在指定的時間執行指定的任務。

void

schedule ( TimerTask task, Date firstTime, longperiod)
安排指定的任務在指定的時間開始進行重復的 固定延遲執行

void

schedule ( TimerTask task, longdelay)
安排在指定延遲后執行指定的任務。

void

schedule ( TimerTask task, longdelay, longperiod)
安排指定的任務從指定的延遲后開始進行重復的 固定延遲執行

void

scheduleAtFixedRate ( TimerTask task, Date firstTime, longperiod)
安排指定的任務在指定的時間開始進行重復的 固定速率執行 。

void

scheduleAtFixedRate ( TimerTask task, longdelay, longperiod)
安排指定的任務在指定的延遲后開始進行重復的 固定速率執行 。

    
    
  
    
    
  
    
    
  
    
    
  
    
      3、TimerTask類的構造方法:
    
  
    
    
  

構造方法摘要

protected

TimerTask ()
創建一個新的計時器任務。

    
    
  
    
    
  
    
    
  

方法摘要

boolean

cancel ()
取消此計時器任務。

abstract void

run ()
此計時器任務要執行的操作。

long

scheduledExecutionTime ()
返回此任務最近 實際 執行的 已安排 執行時間。

    
    
  
    
    
  
    
    
  
    
    
  
    
    
  
    
    
  
    
      實例1:
    
  
    import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


public class TimerTest {

	/**
	 * @param args
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//每隔10s打印"hello,honey!";
		new Timer().schedule(new TimerTask(){

			@Override
			public void run() {
				// TODO Auto-generated method stub
				System.out.println("hello,honey!");
			}
			
		}, 10000);
		while(true){
			System.out.println(new Date().getSeconds());//打印當前秒數
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}

  

實例2:

    import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
 
 
public class TimerTest {
 
        /**
         * @param args
         */
 
        public static void main(String[] args) {
               // TODO Auto-generated method stub
               //每隔10s打印"hello,honey!";
               new Timer().schedule(new TimerTask(){
 
                       @Override
                       public void run() {
                               // TODO Auto-generated method stub
                               System.out.println("hello,honey!");
                       }
                       
               }, 10000,3000);//10s后打印,以后每隔3s打印一次
               /*while(true){
                       System.out.println(new Date().getSeconds());//打印當前秒數
                       try {
                               Thread.sleep(1000);
                       } catch (InterruptedException e) {
                               // TODO Auto-generated catch block
                               e.printStackTrace();
                       }
               }*/
        }
 
}

  


運行結果:

【java多線程與并發庫】--- 定時器的應用

  

【java多線程與并發庫】--- 定時器的應用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产色综合天天综合网 | 日韩一区二区免费看 | 四虎永久在线免费观看 | 五月色婷婷综合激情免费视频 | 日本免费黄色小视频 | 日本xoxoxo在线播放 | 精品免费国产一区二区女 | 日日添日日摸 | 欧美不卡在线观看 | 欧美综合图区 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 一级欧美激情毛片 | 亚洲天堂一区二区 | 久久国产精品久久国产片 | 99久久精品免费看国产四区 | 亚洲在线视频免费观看 | 亚洲一区二区三区高清 | 一本久久a久久精品vr综合 | 国产三级观看久久 | 国内精品久久久久久久久久久久 | 五月婷在线视频 | 成人伊人网| 免费观看日本a毛片 | 亚洲欧洲国产成人综合一本 | 高清国产精品入口麻豆 | 91在线播放国产 | 久久精品国产精品亚洲20 | 国产在线中文字幕 | 4虎 影视 免费 | 久久国产精品99精品国产987 | 欧美高清亚洲欧美一区h | 国产女人嗷嗷叫 | 国产精品第六页 | 亚洲伦理中文字幕 | 青草资源站 | 欧美中文字幕在线 | 精品无人区乱码一区二区三区手机 | 精品视频 久久久 | 欧美永久免费 | 日韩在线天堂 | 亚州中文字幕 |