`
yaerfeng1989
  • 浏览: 234128 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java定时任务类Timer和TimerTask用法详解

阅读更多

原文:java定时任务类Timer和TimerTask用法详解 代码下载地址:http://www.zuidaima.com/share/1550463277550592.htm

java定时任务类Timer和TimerTask用法详解

package com.zuidaima.util;

import java.io.IOException;
import java.util.Timer;

import test.MyTask;
/*
 * 本类给出了使用Timer和TimerTaske的主要方法,其中包括定制任务,添加任务
 * 退出任务,退出定时器.
 * 因为TimerTask的status域是包级可访问的,所以没有办法在java.util.包外
 * 得到其状态,这对编程造成一些不便 .我们不能判断某个Task的状态了.
 * @author www.zuidaima.com
 */
public class TimerTest {
	public static void main(String[] args) {
        Timer timer = new Timer();
        MyTask myTask1 = new MyTask();
        MyTask myTask2 = new MyTask();
        myTask2.setInfo("myTask-2");
        timer.schedule(myTask1, 1000, 2000);
        timer.scheduleAtFixedRate(myTask2, 2000, 3000);
        while (true) {
            try {
                byte[] info = new byte[1024];
                int len = System.in.read(info);
                // 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。
                String strInfo = new String(info, 0, len, "GBK");//从控制台读出信息
                if (strInfo.charAt(strInfo.length() - 1) == ' ') {
                    strInfo = strInfo.substring(0, strInfo.length() - 2);
//                    System.out.println(strInfo+"1");
                }
                if (strInfo.startsWith("Cancel-1")) {
                    myTask1.cancel();//退出单个任务
                    // 其实应该在这里判断myTask2是否也退出了,是的话就应该break.但是因为无法在包外得到
                    // myTask2的状态,所以,这里不能做出是否退出循环的判断.
                } else if (strInfo.startsWith("Cancel-2")) {
                    myTask2.cancel();
                } else if (strInfo.startsWith("Cancel-All")) {
                    timer.cancel();//退出Timer
                    break;
                } else {
                    // 只对myTask1作出判断,偷个懒^_^
                    myTask1.setInfo(strInfo);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
	 static class MyTask extends java.util.TimerTask {
	        String info = "^_^";

	        @Override
	        public void run() {
	            // TODO Auto-generated method stub
	            System.out.println(info);
	        }

	        public String getInfo() {
	            return info;
	        }

	        public void setInfo(String info) {
	            this.info = info;
	        }

	    }

	}

标签: java Timer TimerTasker 定时任务 用法话题: 任务调度 语言基础

分享到:
评论

相关推荐

    Timer和TimerTask的使用

    ### Timer和TimerTask的使用详解 #### 一、引言 `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现...

    java定时任务Timer和TimerTask使用详解

    总结起来,`Timer` 和 `TimerTask` 提供了一种简单的方式在Java中实现定时任务,无论是单次执行还是周期性执行,都能方便地进行调度。但需要注意的是,由于 `Timer` 是基于单线程模型的,如果一个 `TimerTask` 执行...

    详解JAVA Timer和TimerTask

    "详解JAVA Timer和TimerTask" JAVA Timer和TimerTask是JAVA语言中两种重要的线程设施,用于实现定时执行任务。下面将详细介绍JAVA Timer和TimerTask的概念、用法和优点。 JAVA Timer JAVA Timer是一种线程设施,...

    java定时器(timer类使用详解)

    在本文中,我们将深入探讨`Timer`类的工作原理、常用方法以及如何使用它来创建和管理定时任务。 `Timer`类主要用于计划在将来某个时间点执行的任务,这通常通过`TimerTask`类来实现,`TimerTask`是实现了`Runnable`...

    java写定时任务,定时任务、定时器详细示例

    运行上述代码,可以看到每秒输出一次当前的执行时间,展示了`Timer`和`TimerTask`的基本使用方法。 ### 扩展与注意事项 1. **任务取消**:可以通过调用`TimerTask`的`cancel()`方法来取消正在执行或即将执行的任务...

    Timer与TimerTask(计时器)

    在Java编程语言中,`Timer`和`TimerTask`是用于执行定时任务的重要类。这两个类通常被用来处理那些需要在指定时间或周期性执行的任务,比如定时清理缓存、定时更新数据库等场景。 #### Timer简介 `Timer`类是一个...

    Timer定时任务

    Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的能力。这篇文档将深入探讨`Timer`定时任务的相关知识点,并结合实际应用进行解析。 首先,`Timer`类是一个线程类,用于调度任务在...

    Java软件开发实战 Java基础与案例开发详解 12-6 用Timer类调度任务 共6页.pdf

    ### Java软件开发实战:利用Timer类调度任务 在Java软件开发过程中,经常需要处理定时执行的任务,例如定期发送电子邮件、定时...通过理解其核心概念和使用方法,开发者可以在实际项目中更加高效地实现定时任务功能。

    Java 定时器(Timer,TimerTask)详解及实例代码

    它通过`Timer`类和`TimerTask`类的配合使用来实现定时功能。这两个类位于`java.util`包中。 `Timer`类是定时器的管理器,它负责调度任务的执行。创建一个`Timer`实例后,可以通过`schedule`或`scheduleAtFixedRate`...

    Java中Timer的schedule()方法参数详解

    在实际开发中,Timer的schedule()方法广泛应用于实现定时任务、循环任务和延迟任务等场景。例如,在实现内部办公系统与外部网站一体化的时候,需要使用定时任务循环执行读取数据和生成静态页面。 然而,开发者需要...

    JAVA定时运行

    ### JAVA定时运行知识点详解 #### 一、概述 在Java编程中,“JAVA定时运行”主要指通过特定的技术或工具实现在固定时间间隔内执行特定任务的功能。这种技术广泛应用于后台服务、计划任务处理等场景中,例如定时...

    Java中Timer的用法详解

    以下是对`Timer` 和 `TimerTask` 的详细使用方法: 1. **创建Timer对象**: 要使用`Timer`,首先需要创建一个`Timer`实例。这可以通过调用其无参构造函数完成,如示例代码所示: ```java Timer timer = new ...

    java 定时执行

    ### Java定时执行任务详解 #### 一、Java定时任务实现方式概述 在Java中实现定时任务的方法有很多,这里主要介绍一种常见的实现方式:利用`java.util.Timer`类来完成定时任务的调度。`Timer`类提供了多种方法来...

    java线程定时启动

    Java标准库提供了几种不同的方式来实现定时任务的功能,其中最常用的是`java.util.Timer`类与`java.util.TimerTask`类的组合使用。 #### 二、核心概念 1. **Timer类**:它是Java中的定时器类,用于安排和管理定时...

    Java定时器Timer简述共8页.pdf.zip

    本文将深入探讨Java Timer类以及与其相关的TimerTask类,讲解它们的工作原理和常见用法。 1. **Java Timer类介绍** - Java Timer类是位于java.util包下的,它提供了创建和管理定时任务的能力。通过创建一个Timer...

    java-timer的应用

    Java定时器框架包括Timer类和TimerTask类,它们为简单的定时任务提供了便利。然而,对于一些复杂的需求,如任务需要在每天固定时间执行,而要考虑夏令时等因素,标准的Java定时器框架就显得不够灵活。 在Java 2 SDK...

    详解java定时任务

    本篇将详细讲解如何使用JDK中的`Timer`类和`TimerTask`类来实现定时任务。 1. `Timer`类 `Timer`是Java提供的一个定时器工具,它可以安排一个或多个任务在后台线程中执行。`Timer`类具有线程安全性,允许多个线程...

    Java时间类库Timer的使用方法与实例详解

    Java时间类库Timer的使用方法与实例详解 Java时间类库Timer是Java语言中的一种常用的定时器工具,可以用来实现简单的定时调度。下面将详细介绍Java时间类库Timer的使用方法与实例。 一、创建Timer对象 要使用...

    Spring监听器及定时任务实现方法详解

    在Java中,定时任务可以使用java.util.Timer和java.util.TimerTask来实现。Timer类用于调度执行任务,而TimerTask类则是任务的抽象类。可以继承TimerTask类来实现自己的定时任务。 在示例代码中,我们定义了一个...

    java多线程之定时器Timer的使用详解

    Java中的`Timer`类是用于实现定时计划任务的核心组件,它基于多线程机制,允许开发者在指定时间点或周期性地执行任务。`Timer`类的主要功能是创建一个后台线程,这个线程会按照预定的计划执行`TimerTask`实例。`...

Global site tag (gtag.js) - Google Analytics