关于java中的定时器,timer

不少人问到,为什么我的程序只执行了一次,之后就不再执行了,定时器没有起作用?

看了一下Timer的schedule方法的api文档:

schedule(TimerTask task, long delay)的注释:

Schedules the specified task for execution after the specified delay。

在延时delay毫秒后执行task。并没有提到重复执行

schedule(TimerTask task, long delay, long period)的注释:

Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay。

在延时delay毫秒后重复的执行task,周期是period毫秒。

区别就是第一个方法只执行一次,第二个方法有周期的,都涉及到了延时。

下面一个小DWMO:

Task.java

import java.util.Date; import java.util.TimerTask; public class Task extends TimerTask { @Override public void run() { System.out.println("i lovbe you."+ new Date()); } }

Test .java

import java.util.Date; import java.util.Timer; public class Test { /** * @param args */ public static void main(String[] args) { Date now = new Date(); Timer timer = new Timer(); timer.schedule(new Task(), now,1000); try { Thread.sleep(1000); } catch(Exception ex) { timer.cancel(); } } }

执行:

i lovbe you.Tue Sep 01 14:43:50 CST 2009
i lovbe you.Tue Sep 01 14:43:51 CST 2009
i lovbe you.Tue Sep 01 14:43:52 CST 2009
i lovbe you.Tue Sep 01 14:43:53 CST 2009
i lovbe you.Tue Sep 01 14:43:54 CST 2009
i lovbe you.Tue Sep 01 14:43:55 CST 2009
i lovbe you.Tue Sep 01 14:43:56 CST 2009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值