黑马程序员技术交流社区
标题:
Timer使用总结
[打印本页]
作者:
darkads
时间:
2014-9-15 18:59
标题:
Timer使用总结
1.Timer
:
一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
new Timer().schedule(task, 1000);
复制代码
上述代码就是新建一个Timer对象并为其安排一个task任务(TimerTask对象),delay为延迟执行的毫秒数,也可以指定一个固定时间,也可在其后指定重复次数。
2.TimerTask:
抽象类,
由 Timer 安排为一次执行或重复执行的任务。该类声明了Runable接口,要执行的任务代码应该放入run()方法中。
3.多个定时器嵌套问题:
一个TimerTask执行结束后,过段时间又执行一个TimerTask,这样不断循环下去
class MyTimerTask extends TimerTask {
@Override
public void run() {
System.out.println("hello");
new Timer().schedule(new MyTimerTask(), 2000);
}
}
复制代码
自定义一个TimerTask类,在run()方法中在new一个Timer,并且再new一个自身实例作为TimerTask。然后在程序外部调用。
new Timer().schedule(new MyTimerTask(), 2000);
复制代码
这样就会
以2秒的间隔一直执行,实现的关键是在
TimerTask的run()方法中继续创建定时器
。如果两个定时器执行间隔不一样,例如2秒后执行定时器A,然后3秒后执行定时器B,2秒后A,3秒后B一直这样下去,两种方法实现:
1) 在
MyTimerTask创建一个静态int型变量,如果每执行一次加1,奇数时设定新的Timer实例的延迟执行时间为3秒,偶数为两秒。
2) 创建两个
TimerTask子类CA和CB,CA在run()方法中new的Timer实例执行CB对象,延迟3秒,CB在run()方法中new的Timer实例执行CA对象,延迟2秒。
作者:
iefegend
时间:
2014-9-15 19:38
学习一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2