定时启动线程

时间:2022-06-26 07:56:47

假设我们要令一个线程定时启动(譬如从今天晚上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包……
若是指定时间,假如这个时间已过则立即执行任务