【java并发】传统线程技术中的定时器技术

来源:互联网 发布:天猫淘宝商城孕妇装 编辑:程序博客网 时间:2024/06/01 13:32
传统线程技术中有个定时器,定时器的类是Timer,我们使用定时器的目的就是给它安排任务,让它在指定的时间完成任务。所以先来看一下Timer类中的方法(主要看常用的TimerTask()方法):返回值方法名方法描述voidschedule(TimerTask task, long delay)安排在指定延迟后执行指定的任务。voidschedule(TimerTask task, long delay, long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。voidschedule(TimerTask task, Date time)安排在指定的时间执行指定的任务voidschedule(TimerTask task, Date firstTime, long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行。

  前面两个是在指定延迟后执行或者重复执行,后面两个是在指定时间执行或者重复执行。我们以前两个为例来研究一下定时器的使用。
  先写一个简单的使用定时器的demo,然后慢慢引申。

public class TraditionalTimer {    public static void main(String[] args) {            // TODO todo.generated by zoer              Timer timer = new Timer();              timer.schedule(new MyTask(), 1000, 2000);          }  }class MyTask extends TimerTask {            @Override      public void run() {          System.out.println("dddd");        }    }  
  

这样,就可以在1秒钟之后开始执行mytask,每两秒钟执行一次。

当然,timer的功能也可以通过自己构造线程,然后在线程中用sleep来模拟停止一段时间,然后再执行某个动作。

其实,看一下timertask的源码就立即可以知道,timertask就是实现了runnable接口的。也就是说,通过timer来间隔一段时间执行一个操作,也是通过一个线程来做到的。

0 0
原创粉丝点击