Liny_@NotePad

沉迷ACG中

定时启动线程

YOYO posted @ 2009年4月15日 07:13 in 【Java SE】 with tags Timer , 2248 阅读

假设我们要令一个线程定时启动(譬如从今天晚上23点15分开始,隔1秒钟启动一次)
可以使用java.util包中的Timer类,详细用法大家可以查下API。
下面是一个例子:
【TimeTaskThread】 这是要用来执行的任务,需要继承TimerTask类
#这里假设我们要让它执行的时候显示当前时间

  1. import java.util.Calendar;
  2. import java.util.TimerTask;
  3.  
  4. public class TimeTaskThread extends TimerTask {
  5.  
  6.         @Override
  7.         public void run() {
  8.                 System.out.println(Thread.currentThread().getName() + ": " + Calendar.getInstance().getTime());
  9.         }
  10.  
  11. }

 

【TimerThreadExample】具体步骤

  1. import java.util.Calendar;
  2. import java.util.Timer;
  3.  
  4. public class TimerThreadExample {
  5.  
  6.         public static void main(String[] args) {
  7.                 Timer timer = new Timer()// 创建计时器
  8.                
  9.                 Calendar calendar = Calendar.getInstance()// 指定时间
  10.                 calendar.set(Calendar.HOUR_OF_DAY, 23);
  11.                 calendar.set(Calendar.MINUTE, 3);
  12.                 calendar.set(Calendar.SECOND, 15);
  13.                
  14.                 long delay = 1000// 指定延时(每间隔这个时间线程重复运行一次)
  15.                
  16.                 timer.schedule(new TimeTaskThread(), calendar.getTime(), delay);// 预定从指定日期开始每间隔delay ms执行该任务
  17.  
  18.         }
  19.  
  20. }

* 注意
API中有三个Timer,这里用到的Timer来自java.util包……
若是指定时间,假如这个时间已过则立即执行任务

  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter