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

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

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

系統 2487 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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 夜色资源在线观看免费 | 亚洲午夜综合网 | 国产在线自在拍91精品黑人 | 久久国产成人福利播放 | 国产在线观看一区二区三区 | 一区二区不卡不卡一卡 | 无遮挡一级毛片呦女视频 | 色综合久久久久久中文网 | 久久亚洲综合伊人 | 欧美成人精品在线 | 国产亚洲一区二区三区啪 | 99热久久这里只有精品6国产网 | 一级做受毛片免费大片 | 91福利社 | 亚洲五月花 | 中文字幕国产在线 | 性生大片一级毛片免费观看 | 狠狠插天天干 | 天堂素人在线 | 久久中文字幕网 | 青青热久免费精品视频在线观看 | 欧美激情视频二区三区 | 无毒不卡在线观看 | 九九亚洲 | 国产视频在线观看福利 | 久久国产精品99精品国产 | 九九99香蕉在线视频美国毛片 | 久久久久久久国产精品毛片 | 成人毛片免费观看视频大全 | 久久精品伊人波多野结 | 亚洲国产精品免费在线观看 | 色偷偷91综合久久噜噜 | 97欧美| 久久精品免费一区二区三区 | 99热成人精品国产免国语的 | 色综合久久中文色婷婷 | 元龙第三季动漫在线观看免费版 | 亚洲国产精久久久久久久春色 | 成人在线免费视频播放 | 日本欧美成 | 美女啪啪免费网站 |