使用timer定时器线程同步问题

zsmz 2006-07-21 10:29:57
在我的类中设置了3个Timer定时器(Timer1,Timer3,Timer10),3个定时器分别设置执行的时间是1分钟,3分钟,10分钟,在这3个定时器的TimerTask里面都执行一个synchronized的同步函数操作。
现发现执行一段时间之后3分钟的定时器的线程会死掉,程序不再执行Timer3的TimerTask,请问有什么方法可以监控定时器的线程状态,然后重新启动该线程呢???
...全文
303 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
polarman 2006-07-21
  • 打赏
  • 举报
回复
如果创了线程也是你自己的代码创的,而不是Timer创的
polarman 2006-07-21
  • 打赏
  • 举报
回复
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.
zsmz 2006-07-21
  • 打赏
  • 举报
回复
我创建了3个Timer对象,应该是每个 Timer 对象都会创建和管理一个后台线程,这个通过调试可以看到确实是启动了3个线程
polarman 2006-07-21
  • 打赏
  • 举报
回复
根据JDK的文档所说,对于java.util.Timer,所有的定时器使用的是同一个线程,这个线程是在第一个定时器启动的时候启动的。所以,不会是线程死掉了,应该是别的问题
zsmz 2006-07-21
  • 打赏
  • 举报
回复
这种状况是不规则出现的,有可能运行1天3个线程都还是正常运行的,有可能2小时Timer3的TimerTask就停止了,所以很难调试出来
iRoyce 2006-07-21
  • 打赏
  • 举报
回复
用一下调试工具看看.....
zhuangyan2004 2006-07-21
  • 打赏
  • 举报
回复
关注一下
kingdoom 2006-07-21
  • 打赏
  • 举报
回复
关注一下
wxylvmnn 2006-07-21
  • 打赏
  • 举报
回复
gz
zsmz 2006-07-21
  • 打赏
  • 举报
回复
up
sunshine5246 2006-07-21
  • 打赏
  • 举报
回复
up

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧