1. 程式人生 > >第五章:定時器 Timer

第五章:定時器 Timer

  1. 建立一個Timer 就是啟動了一個執行緒,這個執行緒顯然不是守護執行緒,所以一直執行。停不下來 timer.schedule(task, runDate); 在什麼時候,做什麼事兒。 在例項化Timer的時候,把它設定為守護執行緒。 Timer timer = new Timer(true);

  2. 計劃時間早於當前時間—就立即執行。 一個Timer中可以有多個TimeTask, 也許會出現延時,因為前面的task可能執行時間太長。

  3. timer.schedule(task, runDate, 4000); // 指定時間間隔,無限迴圈下去

  4. TimerTask中的cancel()方法,是將自身從任務佇列中被移出去,其他任務不受影響。 Timer中的cancel()方法,是將任務佇列中全部的任務進行清空,但有時不一定會停止 計劃任務,而是正常執行。 原因是Timer中的cancel()方法有時候並沒有爭搶到queue鎖, 則讓TimerTask類中的任務正常執行。