java定时器Timer的使用

  • Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,可以计划执行一个任务一次或反复多次。
  • TimerTask是个抽象类,它的子类代表一个可以被Timer计划的任务。具体的任务在TimerTask中run接口中实现。
  • 通过Timer中的schedule方法启动定时任务。
1、运行定时器

启动一个定时器实质是启动一个线程

在指定日期运行定时器任务,只运行一次

如果date日期在今天之前,则启动定时器后,立即运行一次定时任务run方法

如果date日期在今天之后,则启动定时器后,会在指定的将来日期运行一次任务run方法

Timer timer = new Timer();
timer.schedule(new TimerTask() {
	@Override
    public void run() {
       System.out.println("系统正在运行……");
    }
}, date);             

在距当前时刻的一段时间后运行定时器任务,只运行一次

指定启动定时器5s之后运行定时器任务run方法,并且只运行一次

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        System.out.println("系统正在运行……");
    }
}, 5000); 

在指定的时间后,每隔指定的时间,重复运行定时器任务

如果指定的date时间是当天或者今天之前,启动定时器后会立即每隔2s运行一次定时器任务

如果指定的date时间是未来的某天,启动定时器后会在未来的那天开始,每隔2s执行一次定时器任务

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        System.out.println("系统正在运行……");
    }
}, date, 2000);

在距当前时刻的一段指定距离后,每隔指定时间运行一次定时器任务

当启动定时器后,5s之后开始每隔2s执行一次定时器任务

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        System.out.println("系统正在运行……");
    }
}, 5000, 2000);
2、停止定时器

停止定时器实质是终止Timer的线程。默认情况下,创建的Timer线程会一直执行

  • 调用Timer的cancel方法:timer.cancel();
  • 把Timer线程设置成Daemon守护线程,当所有的用户线程结束后,那么守护线程也会被终止;
  • 当所有的任务执行结束后,删除对应Timer对象的引用,线程也会被终止;
  • 调用System.exit方法终止程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值