java-Timer类使用方法

Timer:
 public Timer()创建一个新计时器。相关的线程不 作为守护程序运行。
方法摘要:
 void schedule(TimerTask task, Date time)
          安排在指定的时间执行指定的任务。
 void schedule(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定延迟执行。
 void schedule(TimerTask task, long delay)
          安排在指定延迟后执行指定的任务。
 void schedule(TimerTask task, long delay, long period)
          安排指定的任务从指定的延迟后开始进行重复的固定延迟执行
具体:
public void schedule(TimerTask task,
                     long delay,
                     long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。以近似固定的时间间隔(由指定的周期分隔)进行后续执行。

固定延迟执行中,根据前一次执行的实际执行时间来安排每次执行。如果由于任何原因(如垃圾回收或其他后台活动)而延迟了某次执行,则后续执行也将被延迟。
从长期来看,执行的频率一般要稍慢于指定周期的倒数(假定 Object.wait(long) 所依靠的系统时钟是准确的)。

固定延迟执行适用于那些需要“平稳”运行的重复活动。换句话说,它适用于在短期运行中保持频率准确要比在长期运行中更为重要的活动。这包括大多数动画任务,如以固定时间间隔闪烁的光标。这还包括为响应人类活动所执行的固定活动,如在按住键时自动重复输入字符。

参数:
task - 所要安排的任务。
delay - 执行任务前的延迟时间,单位是毫秒。
period - 执行各后续任务之间的时间间隔,单位是毫秒。
例子:

public static void main(String[]args){
          Timer timer=new Timer();
          timer.schedule(new CountDown(10,timer), 0,1000);
         }
        }
        class CountDown extends TimerTask{
         private Timer timer;
         private int num;
         public CountDown(int num,Timer timer){
          this.num=num;
          this.timer=timer;
         }

         public void run() {
          // TODO Auto-generated method stub
          if(num>0){
           System.out.println("RUN:"+num+"次");
           num--;
          }else{
           timer.cancel();
           System.out.println("结束!");
          }
         }

 
时间: 2024-09-19 08:15:53

java-Timer类使用方法的相关文章

Java定时任务:利用java Timer类实现定时执行任务的功能_java

一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务. TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务,具体要执行的代码写在TimerTask需要被实现的run方法中. 二.先看一个最简单的例子 我们通过代码来说明 import java.text.SimpleDateFormat; import java.util.Date; import java.util.T

系统-Java: ActionListener类的方法actionPerforme()详解

问题描述 Java: ActionListener类的方法actionPerforme()详解 谁知道系统工作的具体原理,就想了解这个.因为API给的解释就是一句:发生操作时调用. 这个解释实在是太透明了.

通过查询Timer类的方法,解决以下问题当程序运行时,

问题描述 通过查询Timer类的方法,解决以下问题当程序运行时, 通过查询Timer类的方法,解决以下问题: 当程序运行时,如果是每月的最后一天的下午5点,就自动调用某个任务 解决方案 在Timer_Tick里面写 if (DateTime.Now.AddDays(1).Month == DateTime.Now.Month + 1 && DateTime.Now.Hour == 17) { ... Timer1.Stop(); } 解决方案二: 设置schedule task,不需要自己

java Method 类 invoke 方法

问题描述 invoke方法最容易理解的方式是什么?例如一个应用:将一个对象的内容拷贝到另一个对象通过get方法取到值后,说直接调用invoke方法:sm.invoke(s2,obj)是怎么将s1的内容设置到s2里面的啊具体过程是怎样的啊?我有点想不通 解决方案 解决方案二:a.setNum("ddd")对于你的sm.invoke(s2,obj)来说sm就是setNum,一个Mehtod对象,s2就是a,obj就"ddd"跟直接a.setNum("ddd&q

java getclass-父类私有方法的getClass输出了子类的类名

问题描述 父类私有方法的getClass输出了子类的类名 类 TestCode public class TestCode { private String entityClass = getEntityClass(); private String getEntityClass(){ System.out.println(getClass()); System.out.println(getClass().getGenericSuperclass()); //Type trueType = (

java system类使用方法示例 获取系统信息_java

常用的方法: 复制代码 代码如下:  long currentTimeMillis();  获取当前时间的毫秒值 void exit();终止当前正在运行的 Java 虚拟机.  复制代码 代码如下:  public static void Method(){     long l = System.currentTimeMillis();     System.out.println(l);      System.exit(); } 描述系统属性信息:Properties System.ge

自己写的java日志类和方法代码分享_java

复制代码 代码如下: import java.io.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.logging.Logger; public class AndyLogger{    //The defaulted root path of SSLVPN installation     private static String rootPath = "C:\\temp2";    

asp.net C#中timer类的用法

于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类里   3.定义在System.Timers.Timer类里  System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的.它的主要缺点是计时不精确,而且必须有消息循环,Console

Java网络编程基础(三) Datagram类使用方法

Datagram(数据包)是一种尽力而为的传送数据的方式,它只是把数据的目的地记录在数据包中,然后就直接放在网络上,系统不保证数据是否能安全送到,或者什么时候可以送到,也就是说它并不保证传送质量. 1 UDP套接字 数据报(Datagram)是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的.独立的.自身包含地址信息的消息,它能否到达目的地.到达的时间.到达时内容是否会变化不能准确地知道.它的通信双方是不需要建立连接的,对于一些不需要很高质量的应用程序来说,数据报通信是一

java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么

问题描述 java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么 java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么 实现现多个接口的类是不是必须重写其所有方法, 解决方案 首先,第一个问题,了解哪些关键词能修饰方法.变量.类比较容易些. 修饰方法的关键字:public/private/protected/default ,static, 修饰变量了:final ,static:修饰类的:public/private/protected/default,static 其次,实