A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 想进黑马培训 中级黑马   /  2013-8-13 09:28  /  1862 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java 定时器Timer 遇到一个问题,代码中timer每隔一秒执行一次任务,程序执行一天后,Timer定时器就不会执行了。这个是什么原因。重启程序之后,一切就恢复正常了。

4 个回复

倒序浏览
为每个TimerTask创建不同的Timer对象,想停止某个Timer直接调用其cancel()方法 ,写个小例子import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Test{ public static void main(String args[]) throws InterruptedException {  TimerTask task1=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task1");   }  };  TimerTask task2=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task2");   }   };  Timer t1=new Timer();  Timer t2=new Timer();  t1.schedule(task1, new Date(), 1000);//每隔一秒输出  t2.schedule(task2, new Date(), 1000);//每隔一秒输出  Thread.sleep(5000);//等待5秒  t1.cancel();//停止定时器t1  Thread.sleep(5000);//等待5秒  t2.cancel();//停止定时器t2 }}
回复 使用道具 举报
<import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Test{ public static void main(String args[]) throws InterruptedException {  TimerTask task1=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task1");   }  };  TimerTask task2=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task2");   }   };  Timer t1=new Timer();  Timer t2=new Timer();  t1.schedule(task1, new Date(), 1000);//每隔一秒输出  t2.schedule(task2, new Date(), 1000);//每隔一秒输出  Thread.sleep(5000);//等待5秒  t1.cancel();//停止定时器t1  Thread.sleep(5000);//等待5秒  t2.cancel();//停止定时器t2 }}
>
回复 使用道具 举报
  1. 为每个TimerTask创建不同的Timer对象,想停止某个Timer直接调用其cancel()方法 ,写个小例子import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Test{ public static void main(String args[]) throws InterruptedException {  TimerTask task1=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task1");   }  };  TimerTask task2=new TimerTask(){   public void run() {    // TODO Auto-generated method stub    System.out.println("task2");   }   };  Timer t1=new Timer();  Timer t2=new Timer();  t1.schedule(task1, new Date(), 1000);//每隔一秒输出  t2.schedule(task2, new Date(), 1000);//每隔一秒输出  Thread.sleep(5000);//等待5秒  t1.cancel();//停止定时器t1  Thread.sleep(5000);//等待5秒  t2.cancel();//停止定时器t2 }}
复制代码
回复 使用道具 举报
怎么代码是乱序的无语,算了自己调下吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马