关于线程休眠的问题 一个程序需要每隔一小时执行一次,于是我让其每次执行后就休眠一小时,但是现在的问题是,休眠一小时后,该程序并不能一定就能保证被唤醒,请问这种问题应该如何解决,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在线程的run方法中加sleep(3600000) //挂起一个小时,保证能被唤醒的 在线程的run方法中加sleep(3600000) //我是用的这种方法,但在实际情况下确实有没有按时唤醒的时候,最严重的有晚了1个小时的,to believefym:请问如何使用定时器,谢谢。 定时器是在程序一直运行,设置间隔时间可以让程序没隔一段间隔时间执行一次任务,例如import javax.swing.Timer;import java.awt.event.*;import javax.swing.*;public class Counter { static int i = 0; public static void main(String args[]) { Timer timer = new Timer(1000, new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(i++); } }); timer.start(); JOptionPane.showMessageDialog(null, "exit"); timer.stop(); }} sleep(3600000) 这是在执行了你的代码后再挂起一个小时的,是这个意思。如果你的代码执行了二十分钟,那么加起来就是一个小时二十分钟。所以不是想像中的一个小时。用timer也是如些。timer也是用的sleep。 严格的说, sleep(3600000) 是隔一个小时执行, 而不是每一个小时执行.用Timer或自己写都是很简单的 用sleep(3600000),唯一能保证的事情是,它会休眠至少1小时,但是它恢复运行所花的时间可能更长,因为在休眠结束之后,线程调度机制还要花时间来接管。 同意楼上,sleep(3600000)是不能保证准时起来,用timer吧 进来试试你的J2SE基础和英语水平 hibernate的缓存 求一本好书? 要用POI操作excel表,POI包在放在jdk目录的哪个位置 tcp/ip 接口奇怪的用法???????????? 一道题目,JAVA高手看过来 请问那里有visual age最新版本是多少? Java线程相关:Thread.sleep()的用法 求问调用JOptionPane.showOptionDialog如何使用自定义组件关闭该窗口 如何提高HashMap的效率 菜鸟问题请大家帮忙!
to believefym:请问如何使用定时器,谢谢。
import javax.swing.Timer;
import java.awt.event.*;
import javax.swing.*;public class Counter {
static int i = 0; public static void main(String args[]) {
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(i++);
}
}); timer.start(); JOptionPane.showMessageDialog(null, "exit");
timer.stop();
}}