亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java多線(xiàn)程之定時(shí)器Timer的使用詳解

 更新時(shí)間:2017年04月11日 11:26:01   作者:醉眼識(shí)朦朧  
本篇文章主要介紹了java多線(xiàn)程之定時(shí)器Timer的使用詳解,Time類(lèi)主要負(fù)責(zé)完成定時(shí)計(jì)劃任務(wù)的功能,有興趣的可以了解一下。

定時(shí)的功能我們?cè)谑謾C(jī)上見(jiàn)得比較多,比如定時(shí)清理垃圾,鬧鐘,等等.定時(shí)功能在java中主要使用的就是Timer對(duì)象,他在內(nèi)部使用的就是多線(xiàn)程的技術(shù).

Time類(lèi)主要負(fù)責(zé)完成定時(shí)計(jì)劃任務(wù)的功能,就是在指定的時(shí)間的開(kāi)始執(zhí)行某個(gè)任務(wù).

Timer類(lèi)的作用是設(shè)置計(jì)劃任務(wù),而封裝任務(wù)內(nèi)容的類(lèi)是TimerTask類(lèi).此類(lèi)是一個(gè)抽象類(lèi),繼承需要實(shí)現(xiàn)一個(gè)run方法.

通過(guò)查文檔我們看到Timer有以下幾個(gè)構(gòu)造函數(shù):

 

Timer的方法以下這么多:

下面我們通過(guò)定時(shí)器來(lái)完成一個(gè)簡(jiǎn)單功能,就是在運(yùn)行項(xiàng)目三秒后,在控制臺(tái)打印出"您該起床了",來(lái)模擬一下鬧鐘的功能:

package com.wang.reflect;

import java.util.Timer;
import java.util.TimerTask;

class MyTask extends TimerTask{

  @Override
  public void run() {
    System.out.println("您該起床了!!!!");
  }
}
public class TimerDemo {
  public static void main(String[] args) {
    //創(chuàng)建定時(shí)器對(duì)象
    Timer t=new Timer();
    //在3秒后執(zhí)行MyTask類(lèi)中的run方法
    t.schedule(new MyTask(), 3000);
    
  }
}

運(yùn)行后,我們發(fā)現(xiàn)三秒后控制臺(tái)打印出了相當(dāng)?shù)奈淖?但是任務(wù)雖然執(zhí)行完了,進(jìn)程卻沒(méi)有銷(xiāo)毀,還是呈紅色狀態(tài),這是什么原因呢?

創(chuàng)建了一個(gè)Timer就相當(dāng)于啟動(dòng)了一個(gè)新線(xiàn)程,這個(gè)新線(xiàn)程并不是守護(hù)線(xiàn)程,所以會(huì)一直運(yùn)行.

在Time類(lèi)和TimerTask類(lèi)中都有一個(gè)cancel()方法.

TimerTask類(lèi)中的作用是:將自身從任務(wù)隊(duì)列中清除,(一個(gè)Timer對(duì)象可以執(zhí)行多個(gè)Timertask任務(wù))

Timer類(lèi)中的作用是:將任務(wù)隊(duì)列中的全部任務(wù)清空.

下面寫(xiě)一個(gè)實(shí)例,定時(shí)刪除指定磁盤(pán)某個(gè)目錄下的所有文件:

package com.wang.reflect;

import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


class MyTask extends TimerTask{
/**
 * 定時(shí)刪除指定位置的文件,(這里以刪除f盤(pán)下aa文件夾的所有文件為例)
 */
  @Override
  public void run() {
    File file=new File("f://aa");
    deleteFolder(file);
    
  }
  public void deleteFolder(File file){
    File[] files=file.listFiles();
    for(File f:files){
      if(f.isDirectory()){
        //使用遞歸
        deleteFolder(f);
      }else{
        f.delete();
      }
    }
    file.delete();
  }
  
}
public class TimerDemo {

  public static void main(String[] args) throws ParseException {
    //創(chuàng)建定時(shí)器對(duì)象
    Timer t=new Timer();
    String time="2016-04-04 11:26:40";
    Date d=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
    t.schedule(new MyTask(), d);
  }
}

注意,如果在上面測(cè)試代碼中,我給出的Date類(lèi)型的時(shí)間,早于當(dāng)前的時(shí)間.則會(huì)立即執(zhí)行task任務(wù).

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Mockito與Spring Boot的整合為Java開(kāi)發(fā)者提供了一套完整的解決方案,使得單元測(cè)試更為精準(zhǔn)、高效,從而確保了代碼質(zhì)量、降低了維護(hù)成本,并促進(jìn)了項(xiàng)目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • java創(chuàng)建簡(jiǎn)易視頻播放器

    java創(chuàng)建簡(jiǎn)易視頻播放器

    這篇文章主要為大家詳細(xì)介紹了java創(chuàng)建簡(jiǎn)易視頻播放器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaWeb學(xué)習(xí)筆記之Filter和Listener

    JavaWeb學(xué)習(xí)筆記之Filter和Listener

    這篇文章主要給大家介紹了關(guān)于JavaWeb學(xué)習(xí)筆記之Filter和Listener的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java如何搭建一個(gè)個(gè)人網(wǎng)盤(pán)

    Java如何搭建一個(gè)個(gè)人網(wǎng)盤(pán)

    這篇文章主要介紹了Java如何搭建一個(gè)個(gè)人網(wǎng)盤(pán),對(duì)網(wǎng)盤(pán)感興趣的讀者,可以參考一下
    2021-04-04
  • Java8使用Supplier啟動(dòng)ScheduledThread代碼實(shí)例

    Java8使用Supplier啟動(dòng)ScheduledThread代碼實(shí)例

    這篇文章主要介紹了Java8使用Supplier啟動(dòng)ScheduledThread詳解,項(xiàng)目開(kāi)啟立即啟動(dòng)定時(shí)任務(wù)是很多項(xiàng)目都會(huì)遇到的一個(gè)需求,如何利用Java提供的函數(shù)優(yōu)雅的寫(xiě)出來(lái)十分考驗(yàn)一個(gè)人的功底,需要的朋友可以參考下
    2024-01-01
  • Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    這篇文章主要介紹了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java使用內(nèi)存數(shù)據(jù)庫(kù)ssdb的步驟

    java使用內(nèi)存數(shù)據(jù)庫(kù)ssdb的步驟

    這篇文章主要介紹了java使用內(nèi)存數(shù)據(jù)庫(kù)ssdb的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • SpringBoot如何接收前端傳來(lái)的json數(shù)據(jù)

    SpringBoot如何接收前端傳來(lái)的json數(shù)據(jù)

    這篇文章主要介紹了SpringBoot如何接收前端傳來(lái)的json數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Spring中bean的初始化和銷(xiāo)毀幾種實(shí)現(xiàn)方式詳解

    Spring中bean的初始化和銷(xiāo)毀幾種實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Spring中bean的初始化和銷(xiāo)毀幾種實(shí)現(xiàn)方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 一篇文章帶你認(rèn)識(shí)Java8接口的默認(rèn)方法

    一篇文章帶你認(rèn)識(shí)Java8接口的默認(rèn)方法

    這篇文章主要給大家介紹了如何通過(guò)一篇文章帶你認(rèn)識(shí)Java8接口的默認(rèn)方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論