ホームページ Java &#&チュートリアル Java マルチスレッド -- タイマーの使用 タイマー

Java マルチスレッド -- タイマーの使用 タイマー

Dec 16, 2016 pm 01:56 PM

携帯電話では、定期的なゴミ掃除や目覚まし時計などのタイミング機能が増えています。タイミング機能は主に Java の Timer オブジェクトを使用し、内部ではマルチスレッド技術を使用します。

主に Time クラスが担当する関数です。スケジュールされたタスクを完了するには、指定された時間の開始時にタスクを実行します。Timer クラスの機能は、スケジュールされたタスクを設定することであり、タスクの内容をカプセル化するクラスは、TimerTask クラスです。継承が必要です run メソッドを実装します。

ドキュメントを確認すると、Timer には次のコンストラクターがあることがわかります:

Java マルチスレッド -- タイマーの使用 タイマーTimer には非常に多くのメソッドがあります:

Java マルチスレッド -- タイマーの使用 タイマーここで、タイマーを使用して単純なメソッドを完了します。プロジェクトの実行後 3 秒後に、目覚まし時計の機能をシミュレートするために「起きる時間です」がコンソールに出力されました。

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) {
        //创建定时器对象
        Timer t=new Timer();
        //在3秒后执行MyTask类中的run方法
        t.schedule(new MyTask(), 3000);
        
    }
}
ログイン後にコピー

実行後、コンソールにかなりの量のテキストが出力されることがわかりました。 3 秒後、タスクは実行されましたが、プロセスは破棄されず、まだ赤いステータスのままです。原因は何ですか?

この新しいスレッドはデーモンではありません。

In Time クラスと TimerTask クラスの両方に cancel() メソッドがあります。

TimerTask クラスの機能は、タスク キューから自身をクリアすることです (Timer オブジェクトは実行できます)。複数の Timerask タスク)、Timer クラスの機能は次のとおりです: タスク キュー内のすべてのタスクをクリアします。

指定したディスク上のディレクトリ内のすべてのファイルを定期的に削除する例を以下に記述します。

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{
/**
 * 定时删除指定位置的文件,(这里以删除f盘下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 {
        //创建定时器对象
        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);
    }
}
ログイン後にコピー

上記のテストの場合に注意してください。コード、私が指定した Date 型の時刻、それは早くなります


Java マルチスレッドタイマーの使用法に関する詳細については、次の記事を参照してください。 PHP中国語ウェブサイトです!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)