java Timer失效 现状:用Timer做了一个定时器,能够每5秒处理一些数据。问题:把系统时间延后,一切正常。(我也希望正常)但是把系统时间提前 定时器失效。(好苦恼)要求:能否系统时间提前,定时器不失效??或者重新启动定时器??或者发个错误消息给我也可以吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Timer其实也是Thread,用Thread试试哩。 Timer 和 TimeTask 存在设计上的缺陷,在 JDK 5 之后没有必要再使用这个类了,可以使用 java.util.concurrent.ScheduledExecutorService 来取代。 谢谢楼上的专家解答。这个方法可以替换Timer,因为它比较的是相对时间,不是绝对时间。所以不管怎么修改系统时间,都不受影响。见多识广,谢谢! 收获了~~~~刚看了下 Timer 类。只所以修改系统时间后,Timer 不再执行是因为在 Timer 中是以 System.currentTimeMillis() 获取当前时间,然后和 TimerTask 的下次执行时间进行比较,如果系统时间改小了,TimerTask 当然就不会运行。本想包装一下 Timer 和 TimeTask ,通过 Thread.sleep 来实现的.但是你这个更简单。学习了。 关于下载的问题 synchronized标记 和synchronized 方法有什么区别 一道基础性的java题目,大家看看谁的方法更好 关于jtextfield和jbutton组合的问题 求各位给我的计算器跳出一个错误吧 【求助】 eclipse中jdk帮助文档的设置 在把一应用程序改成applet时出现了这样的问题,大家给看看什么原因 有没有规定一定要先安装SDK然后才能安装JVM?否则就安装不了SDK? 怎么会跳出呢? log4j怎么实现给每个任务记录日志 Java enum的用法,很基础的一个问题
收获了~~~~刚看了下 Timer 类。只所以修改系统时间后,Timer 不再执行是因为在 Timer 中是以 System.currentTimeMillis() 获取当前时间,然后和 TimerTask 的下次执行时间进行比较,如果系统时间改小了,TimerTask 当然就不会运行。本想包装一下 Timer 和 TimeTask ,通过 Thread.sleep 来实现的.但是你这个更简单。学习了。