JAVA----定时操作任务

来源:互联网 发布:阿里java面试题2016 编辑:程序博客网 时间:2024/05/22 06:16

使用java.util.Timerjava.util.TimerTask两个类来实现

1.Timer类

public class Timer extends Object

每个Timer对象对应一个后台线程,用于安排将来执行的任务,可以安排执行一次的任务,或是执行多次的任务。如果想要终止计时器任务,可以采用终止方法。
这个类是线程安全的,多个类可以共享一个Timer类,而不需要额外同步。

1.1构造器

public Timer()public Timer(boolean isDaemon)     public Timer(String name)public Timer(String name,boolean isDaemon)

1.2方法

public void cancel()  //终止此定时器public void schedule(TimerTask task,Date time) //任务在指定的时间执行,如果时间在过去,那么将立刻执行任务public void schedule(TimerTask task,Date firstTime,long period)//指定的时间开始,重复一段时间执行任务public void schedule(TimerTask task,long delay,long period)//指定延迟后,每隔指定时间执行一次任务还有其他类似方法查看文档

2.TimerTask

public abstract class TimerTiskextends Objectimplements Runnable

2.1方法

public boolean cancel()//该方法取消任务的执行,如果任务正在执行,则执行完了之后取消//如果阻止了任务的执行则返回truepublic abstract void run()//抽象方法,任务执行体public long scheduledExecutionTime()//返回任务的最近执行的计划执行时间,通常在run中调用来确定当前的执行是否够时间

3.例子

class Time extends TimerTask{    public void run() {        Date d = new Date();        SimpleDateFormat sdf = new SimpleDateFormat();        sdf.applyPattern("yyyy-MM-dd,HH:mm:ss:SS");        System.out.println(sdf.format(d));    }}public class Run {    public static void main(String[] args) {        Timer t = new Timer();        t.schedule(new Time(), 2000, 1000);    }   }

输出:

2017-11-16,20:46:14:7902017-11-16,20:46:15:7892017-11-16,20:46:16:7902017-11-16,20:46:17:7902017-11-16,20:46:18:790

即每隔一秒执行一次任务

原创粉丝点击