`
gallop_liu
  • 浏览: 110112 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

java Timer 定时循环线程造成系统时钟混乱

阅读更多

    问题的现象描述:tomcat下的web工程中的Timer 定时循环线程启动后,会导致系统时钟慢慢的变快,一段时间后系统时钟又突然变正常,Timer 每秒重复执行程序一次,这种现象反复的出现。但这种现象并不是必现的,同样的程序在另一台XP的系统上运行则不会出现此种情况。

    系统环境描述:

           操作系统:Windows Server 2003

           tomcat版本:tomcat 6.0.18

           jdk版本:1.6.0_07-b06

    问题原因说明:经过搜索获知,这是jvm出现的一个bug,当多个Timer线程频繁的定时重复执行程序时,Timer中的Thread.sleep()方法,若sleep的参数小于10ms就可能会造成windows系统时钟变快。

    解决办法:在tomcat 的jvm启动参数中加上ForceTimeHighResolution 这一参数,具体操作如下:

                  以tomcat 6.0.18为例:

                  打开bin目录下的tomcat6w.exe—>java 选项 —>在Java Options中添加如下一行:

                  -XX:+ForceTimeHighResolution

                  重新启动tomcat即可。

分享到:
评论

相关推荐

    关于winform使用timer进行多线程操作的例子

    在Windows Forms(Winform)应用...通过这个例子,开发者可以学习到如何在不影响用户体验的情况下执行定时任务,以及如何正确地在不同线程之间传递数据和更新UI。对于网络编程和C#开发来说,这是一个非常实用的技巧。

    C# Timer的多线程使用方法

    在.NET框架中,C#提供了两种Timer类,用于在多线程环境中实现定时触发操作:System.Threading.Timer和System.Timers.Timer。这两种Timer虽然都与时间调度相关,但在使用上和特性上有所不同。在这个主题中,我们将...

    java定时任务调度之Timer 简单示例

    Java定时任务调度是Java应用程序中常见的一种功能,用于在特定时间执行特定任务,例如定期备份、数据清理等。`Timer`类是Java中用于实现定时任务调度的一个基础工具,它位于`java.util`包中。在本文中,我们将深入...

    java线程定时启动

    ### Java线程定时启动知识点详解 #### 一、概述 在Java编程中,有时我们需要让某个任务或操作在特定的时间点或每隔一段时间自动执行一次。这通常被称为“定时任务”。Java标准库提供了几种不同的方式来实现定时...

    多线程java时钟,计科最实用

    在Java编程中,多线程时钟是一种常见且实用的应用,它可以模拟现实世界中的时钟,实时更新时间。本文将详细解析给定的代码片段,分析其中涉及的Java多线程、时间处理以及用户界面(UI)设计相关知识点。 首先,程序...

    Timer及多线程编程

    根据提供的文档内容,我们可以深入探讨其中涉及的两个主要知识点:`Timer`的使用以及多线程编程的基础。这里我们将重点放在这些方面,并结合文档中的相关内容进行详细的解释。 ### C#中的Timer #### System....

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java程序中的线程是在操作系统级别的线程基础上进行抽象的。每个Java程序都有一个主线程,即由JVM启动并执行main方法的线程。线程代表了程序中的执行流,可以在不同的线程之间切换以共享CPU时间。线程的状态包括新建...

    java定时器定时调用任务

    Java中的定时任务实现通常涉及`java.util.Timer`类和`java.util.TimerTask`类。在本篇文章中,我们将深入探讨如何使用这些类来创建和管理定时任务。 首先,`java.util.Timer`是一个线程类,用于调度在将来某个时间...

    java Timer 定时每天凌晨1点执行任务

    Java Timer 定时每天凌晨1点执行任务 在Java中,Timer类是一个非常有用的工具类,它可以帮助我们实现定时任务的执行。在本篇文章中,我们将学习如何使用Java Timer来实现每天凌晨1点执行任务的功能。 首先,让我们...

    JAVA实现多线程时钟代码程序

    6. **定时器与定时任务**:时钟需要定期更新,这可能涉及到了Java的`java.util.Timer`类或者`ScheduledExecutorService`。这些类可以用来安排任务在特定时间执行,比如每秒更新一次时钟显示。 7. **异常处理**:在...

    java5定时器java Timer

    - 任务执行的精确性:由于系统调度和线程上下文切换的影响,定时任务的执行时间可能会有所偏差。 - 程序关闭时的资源释放:确保在程序退出时取消所有定时任务,以避免后台线程继续运行,导致资源泄露。 - 错误处理:...

    Java里timer执行定时任务

    ### Java里timer执行定时任务 #### 一、延时执行 在Java中,`java.util.Timer` 类提供了创建和管理定时任务的功能。如果需要在特定时间之后执行某个任务,可以利用 `Timer` 类的 `schedule()` 方法。此方法接受一...

    java多线程模拟时钟显示

    在Java编程中,多线程是...综上所述,实现“java多线程模拟时钟显示”需要掌握Java多线程编程的基础知识,包括线程创建、同步控制、定时更新以及GUI编程等。通过这个项目,开发者可以提升对并发编程的理解和实践能力。

    java timer定时器详解(附详细代码)

    Java Timer定时器详解 Java Timer定时器是Java语言中的一种常用的定时器机制,它可以帮助开发者实现一些需要在特定时间或特定间隔执行的任务。Java Timer定时器主要是通过java.util.Timer和java.util.TimerTask两个...

    时钟Timer钟表Timer

    在IT领域,时钟Timer是一种重要的编程概念,尤其在实时系统、游戏开发、网络应用以及各种需要定时执行任务的场景中。它是一个可以设定特定时间间隔后触发事件或执行特定功能的对象。本篇文章将深入探讨时钟Timer的...

    vb模拟多线程 本地Timer对多线程

    另一种常见的方法是利用Timer控件,通过定时触发事件来模拟多线程。尽管这不是真正的多线程,但在某些情况下可以达到类似的效果。具体操作流程如下: 1. 添加Timer控件:在VB界面设计时,添加一个Timer控件到窗体上...

    VC中TIMER与多线程的对比.zip

    在VC++编程中,我们经常会遇到需要执行定时任务的情况,这时可以使用TIMER或者多线程来实现。然而,这两种方式在性能和使用场景上存在显著差异。本篇将详细探讨VC++中TIMER与多线程的对比。 首先,让我们了解什么是...

    JAVA线程程序设计(小时钟)实验报告(附完整代码).doc

    这个实验——“JAVA线程程序设计(小时钟)”的目标是让学生深入理解Java线程的概念,特别是线程调度和线程同步,并通过创建一个动态的指针式时钟来实践这些概念。 实验内容要求设计和编写一个时钟程序,该程序使用...

    java.util.timer实现的简单定时任务

    Java.util.Timer类是Java标准库提供的一种简单但功能有限的定时任务执行机制。它允许开发者在指定的时间间隔或特定时间点执行任务,非常适合处理一次性或周期性的后台操作。本篇文章将深入探讨如何使用Timer和...

    Java定时器数字时钟

    Java定时器数字时钟是一种基于Java编程语言实现的软件,它可以模拟系统时间并实时更新显示。这个程序是在Eclipse 7.5集成开发环境中编写的,Eclipse是Java开发者广泛使用的IDE,它提供了丰富的功能,如代码编辑、...

Global site tag (gtag.js) - Google Analytics