4个回答
展开全部
public class Timer extends Object一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述不友好的任务最终完成时才能够被快速连续地执行。
对 Timer 对象最后的引用完成后,并且 所有未处理的任务都已执行完成后,计时器的任务执行线程会正常终止(并且成为垃圾回收的对象)。但是这可能要很长时间后才发生。默认情况下,任务执行线程并不作为守护线程 来运行,所以它能够阻止应用程序终止。如果调用者想要快速终止计时器的任务执行线程,那么调用者应该调用计时器的 cancel 方法。
如果意外终止了计时器的任务执行线程,例如调用了它的 stop 方法,那么所有以后对该计时器安排任务的尝试都将导致 IllegalStateException,就好像调用了计时器的 cancel 方法一样。
此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。
具体方法
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述不友好的任务最终完成时才能够被快速连续地执行。
对 Timer 对象最后的引用完成后,并且 所有未处理的任务都已执行完成后,计时器的任务执行线程会正常终止(并且成为垃圾回收的对象)。但是这可能要很长时间后才发生。默认情况下,任务执行线程并不作为守护线程 来运行,所以它能够阻止应用程序终止。如果调用者想要快速终止计时器的任务执行线程,那么调用者应该调用计时器的 cancel 方法。
如果意外终止了计时器的任务执行线程,例如调用了它的 stop 方法,那么所有以后对该计时器安排任务的尝试都将导致 IllegalStateException,就好像调用了计时器的 cancel 方法一样。
此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。
具体方法
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
展开全部
在你的web项目里设定个刷新时间,每个多少时间重新url一下,如果有内容在输入,则延时指定时间后刷新
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JDK自带了定时任务的实现,Task类,你去网上找找Java怎么实现定时任务,,很简单的,就在你自己的定时任务实现类里面调你的原来的查数据的操作,然后显示在页面就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单实现的话,就启动一个线程,用一个死循环扩起来,然后用sleep去延时,取出的变量可以放在一个全局变量里,通过<%=Thread.dbnum%>显示;也可以以写入字符文件,在页面上include就行,
public static int dbnum;
.....
public xxMethod(){
....
while(true) {
dbnum = selectFromDB();
Thread.sleep(1*60*1000) ; //1ms * 60 * 1000 = 1分钟
}
....
}
public static int dbnum;
.....
public xxMethod(){
....
while(true) {
dbnum = selectFromDB();
Thread.sleep(1*60*1000) ; //1ms * 60 * 1000 = 1分钟
}
....
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询