最近在做java课程设计的时候,我用到了timer,于是学习了一下timer的用法。
java实现多线程比较常用的两种方法,一种是直接继承Thread类,另一种则是实现Runnable接口。Timer也可以实现多线程,它需要和TimerTask搭配使用,TimerTask是实现了Runnable接口的抽象类。
下面是timer的一些用法
public void schedule(TimerTask task ,long delay)
这个方法是调度一个task,经过delay(ms)后开始进行调度,仅仅调度一次。
public void schedule(TimerTask task, Date time)
在指定的时间点time上调度一次。
public void schedule(TimerTask task, long delay, long period)
这个方法是调度一个task,在delay(ms)后开始调度,每次调度完后,最少等待period(ms)后才开始调度。
1
|
public void schedule(TimerTask task, Date firstTime, long period) |
和上一个方法类似,唯一的区别就是传入的第二个参数为第一次调度的时间。
1
|
public void scheduleAtFixedRate(TimerTask task, long delay, long period) |
一个Timer可以调度任意多个TimerTask,它会将TimerTask存储在一个队列中,顺序调度,如果想两个TimerTask并发执行,则需要创建两个Timer。