0 0

java TimerTask 无缘无故停止20

在两次事故中,是中一个java定时器无报错就停止了(不会执行下一次,一次是第二天后出现,另外一次是两个月后出现),
Timer t = new Timer(cTimer.getId());
t.scheduleAtFixedRate(clazz.newInstance(), firstTime,
cTimer.getPeriod());//设定一些定时器clazz是继承于TimerTask 类,每1s执行一次,这个操作很频繁,但逻辑不复杂,现在想知道,是不是TimerTask不可靠,还是其他原因

谢谢了
2013年7月17日 16:04

7个答案 按时间排序 按投票排序

0 0

有道理,我调的接口很不稳定,看来要用线程池来调了。。

2016年9月13日 12:04
0 0

这种问题我遇到过,也找到了原因,因为系统时间发生了变化,Timer的等待时间是根据系统计数器来计算的,一旦系统时间变了,他就回不去了,这个问题曾经困扰我一周,后来改用 Thread.sleep解决的,你可以试试,因为某些原因我一直没有试试那个ScheduledThreadPoolExecutor在系统时间改变的时候会不会出问题,但是我抱着 Thread.sleep目前来说应该可以解决你的问题了例子

new Thread(){

public void run(){
    while(true){
      //你的任务代码

      Thread.sleep(//等待时间);
   }
  }
}.start();

2013年7月19日 11:43
0 0

Timer是不大可靠,如果任务某次执行抛出未检测的异常,线程就挂了,后面的时间点就无法正常运行了。一般用ScheduledThreadPoolExecutor这个替代。

2013年7月18日 19:06
0 0

Timer 是单线程,如果运行过程中出现异常,使线程阻塞,定时器就不会起作用了

2013年7月18日 15:17
0 0

1. 请提供更多的详细信息。到目前为止提供的信息不足够,不能根据这些信息提供帮助。例如提供log,系统日志之类的,或者更多的源代码
2. JDK是经过详细、严格、认真的测试,是千锤百炼的成果,我们应该相信JDK。如果有问题,首先怀疑是不是自己的代码有问题。
3. 是否有可能存在内存泄露或者系统崩溃的情况?是否有可能所有的non-deamon线程都退出了导致jvm运行终止?

2013年7月18日 13:38
0 0

可能被抢占了,一直未被唤醒。

2013年7月17日 18:04
0 0

你这个就是一个定时调度吧

不是有现成的工具吗,quartz,这个已经能够完成你所要求的功能,而且稳定可靠

2013年7月17日 16:56

相关推荐

    详解JAVA Timer和TimerTask

    "详解JAVA Timer和TimerTask" JAVA Timer和TimerTask是JAVA语言中两种重要的线程设施,用于实现定时执行任务。下面将详细介绍JAVA Timer和TimerTask的概念、用法和优点。 JAVA Timer JAVA Timer是一种线程设施,...

    Java中的Timer和TimerTask的使用.doc

    在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...

    Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作

    下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...

    Android Timer Task Demo

    `TimerTask`是Java提供的一个定时执行任务的类,它继承自`Runnable`接口。创建一个`TimerTask`对象,然后将其添加到`Timer`中,就可以按照设定的时间间隔重复或一次性执行该任务。 首先,我们创建一个`TimerTask`的...

    JavaTimer和TimerTask实例教程Java开发

    在Java编程语言中,`Timer`和`TimerTask`是两个重要的类,它们用于调度周期性的任务执行。这两个类属于`java.util`包,提供了在后台线程中延迟执行任务或者定期执行任务的能力,这对于创建定时任务或者实现定时器...

    JAVA定时器之Timer+TimerTask

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们构成了Java的定时执行机制。这两个类在处理周期性任务或者延迟任务时非常有用,它们可以帮助开发者实现程序在特定时间点或者按照一定间隔执行特定操作的...

    java定时器设置及停止的方法

    本文将深入探讨如何在Java中设置和停止定时任务,主要关注`java.util.Timer`和`java.util.TimerTask`,以及更现代的`ScheduledExecutorService`。 首先,`java.util.Timer`是一个工具类,它允许程序员安排任务在...

    Timer和TimerTask的使用

    `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现定时提醒、定时备份等功能非常有用。 #### 二、...

    java定时器应用 timertask类

    Java定时器应用主要涉及到`Timer`类和`TimerTask`类,这两个类是Java.util包下的,用于实现延时和周期性任务的调度。在Java编程中,有时我们需要执行一些任务,但不希望立即执行,而是希望在特定的时间点或者按照...

    Java计时器Timer和TimerTask用法总结

    Java 计时器 Timer 和 TimerTask 用法总结 Java 中的计时器(Timer)和 TimerTask 是一种常用的延迟执行技术,用于实现延迟执行某个任务或事件。下面将详细介绍 Timer 和 TimerTask 的用法和实现原理。 Timer ...

    Java--Timer--TimerTask--.rar_java timer

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们用于调度周期性的任务执行。这两个类在多线程环境下尤其有用,能够帮助开发者安排在将来某一特定时间或定期执行的任务。让我们深入了解一下`Timer`和`...

    TimerTask执行每日定时任务

    在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务的调度。这两个类属于`java.util`包,为开发者提供了执行周期性或一次性任务的能力。下面我们将深入探讨如何利用`TimerTask`执行每日定时...

    几种定时任务(Timer、TimerTask、ScheduledFuture)的退出—结合真实案例【JAVA并发】.docx

    当需要退出时,除了在TimerTask的run()方法中调用cancel()外,还可以直接调用Timer的cancel()方法,这将取消所有计划的TimerTask并停止Timer线程。 接下来,我们转向ScheduledExecutorService,它是Java并发框架中...

    Java中的Timer和TimerTask简介(附完整代码实例)

    Java中的Timer和TimerTask简介(附完整代码实例)。 在Java中,Timer和TimerTask是两个经常用来实现定时器的类。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求。 Timer是一种定时器工具,用来在一...

    TimerTaskDemo

    【TimerTaskDemo】是一个示例程序,展示了Java中的定时任务处理技术,主要涉及`Timer`类和`TimerTask`类的使用。在这个示例中,开发者可能创建了一个`TimerTask`实例来执行特定的任务,然后通过`Timer`类来调度这个...

    TimerTask与Timer设计时间监控

    在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务和调度。这两个类在处理需要定期执行的任务时非常有用,例如数据刷新、任务调度或者周期性的系统检查等。本篇文章将深入探讨`TimerTask`...

    timerTask定时任务使用java代码操作svn

    在Java编程中,`TimerTask`是一个非常实用的类,用于执行定期的异步任务。这个定时任务系统是基于`java.util.Timer`类构建的,它允许开发者在指定的时间间隔执行重复或一次性任务。在本项目中,`TimerTask`被用来...

    java类Timer和TimerTask的使用.pdf

    Java中的`Timer`和`TimerTask`类是用于创建和管理定时任务的工具,它们提供了在特定时间点或按照预设间隔执行任务的功能。这两个类是Java标准库`java.util`包的一部分,对于需要定时执行操作的应用场景非常有用。 `...

    Web中使用Timer和TimerTask定时获取数据。

    Java中的`java.util.Timer`和`java.util.TimerTask`类提供了这样的功能,让我们能够在程序中实现定时任务。本文将深入探讨这两个类的工作原理和如何在Web环境中使用它们。 `Timer`类是Java的一个调度工具,它允许...

    java定时任务每天执行TimerTask 使用方法

    在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后 发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。...

Global site tag (gtag.js) - Google Analytics