liaoboisyj 2010-12-07 16:42
浏览 215
已采纳

关于Timer的问题

是这样的,我在程序里面用一个timer调用TimerTask,定时每个几个小时执行。在程序开始启动后的几天还行,可是过了几天后就自动不动了。不知道是为什么?具体代码如下:
TimerTask tt = new TimerTask() {

public void run() {

//下面的线程池被廖博注释掉了,先测测。
Runnable runable = new Runnable() {
public void run() {

task.collect();
}
};

try{

Commons.threadPools.submit(runable);
}catch(Exception e){
logger.info(e.toString());

}
}

            };  

timer.scheduleAtFixedRate(tt, 0, 6*60*60*1000);

里面也没有什么资源没有关闭,因为该程序启动以后只是从ftp上取文件下来,之后就关闭了。不知道为什么会出现这种情况。

  • 写回答

2条回答 默认 最新

  • beneo 2010-12-07 17:32
    关注

    tem 68 in Effective Java (2nd ed) recommends ScheduledThreadPoolExecutor as a more flexible replacement for Timer

    你可以在[url=http://item.taobao.com/item.htm?id=7568402858&ad_id=&am_id=&cm_id=&pm_id=]effective java[/url]的item#68找到说明,timer只用一个线程来执行任务,这在面对长期任务时,会影响定时的准确性。如果timer唯一的线程抛出未捕获的异常,timer就会停止运行。

    更多的你在书里面看好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog