当前位置: 代码迷 >> J2SE >> timer.schedule运作一定时间后挂死.
  详细解决方案

timer.schedule运作一定时间后挂死.

热度:211   发布时间:2016-04-23 20:22:25.0
timer.schedule运行一定时间后挂死.....
程序代码如下,程序运行没有问题,MyTimerTask()有日志输出。但是发现程序运行一段时间后挂死,即根据日志发现:没有运行新的timer.schedule任务,程序界面没有变化,也没有报错退出,如何解决?

Timer timer = new Timer();
timer.schedule(new MyTimerTask(), theDate, Integer.parseInt(interval) * 60 * 1000);

------解决方案--------------------
MyTimerTask的实现贴出来看一下
------解决方案--------------------
Integer.parseInt(String)可能抛出异常,检查问题会出在这吗?
------解决方案--------------------
系统时间若有改变,timer就会挂掉

异常你捕获了,应该问题不在这

强烈建议换成ScheduledExecutorService  executorService = Executors.newScheduledThreadPool(size);

用这个来调度,就不会有timer的乱七八糟的问题
------解决方案--------------------
引用
我用过多次TimerTask也没遇到过啊。建议用timer.scheduleAtFixedRate(...);至于为什么。。LZ可以自己去看看资料。。

还有。再看看程序哪里没有关闭IO,或者链接。。或者大数据的处理。。。 

还有挂死 是卡住不动了?还是直接报错溢出了?还是别的情况。。。?

如果卡住或者溢出,只能用MemoryAnalyzer工具分析哪里的原因。。就像debug更容易发现问题一样。。。

将卡住的程序。。cmd下达成一个bin包。。导入工具分析。。。有包或者类或者对象的内存占用情况。。


如果大概知道是哪段代码有问题。。那就不用分析了。。直接改bug。。。
  相关解决方案