在我的类中设置了3个Timer定时器(Timer1,Timer3,Timer10),3个定时器分别设置执行的时间是1分钟,3分钟,10分钟,在这3个定时器的TimerTask里面都执行一个synchronized的同步函数操作。
现发现执行一段时间之后3分钟的定时器的线程会死掉,程序不再执行Timer3的TimerTask,请问有什么方法可以监控定时器的线程状态,然后重新启动该线程呢???

解决方案 »

  1.   

    这种状况是不规则出现的,有可能运行1天3个线程都还是正常运行的,有可能2小时Timer3的TimerTask就停止了,所以很难调试出来
      

  2.   

    根据JDK的文档所说,对于java.util.Timer,所有的定时器使用的是同一个线程,这个线程是在第一个定时器启动的时候启动的。所以,不会是线程死掉了,应该是别的问题
      

  3.   

    我创建了3个Timer对象,应该是每个 Timer 对象都会创建和管理一个后台线程,这个通过调试可以看到确实是启动了3个线程
      

  4.   

    JDK文档中的原文:
    Corresponding to each Timer object is a single background thread that is used to execute all of the timer's tasks, sequentially. Timer tasks should complete quickly. If a timer task takes excessive time to complete, it "hogs" the timer's task execution thread.
      

  5.   

    如果创了线程也是你自己的代码创的,而不是Timer创的