ScheduledExecutorService的用法——定时执行两个任务

package control;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class TimerManager {
	//
	Log log=Log.getLoger();

	 private  ScheduledExecutorService scheduExec;   
	 public long start;  
	 public TimerManager() {

	  this.scheduExec =  Executors.newScheduledThreadPool(2);  
	  
      this.start = System.currentTimeMillis();  
      long oneDay = 24 * 60 * 60 * 1000;  
      long initDelayOne  = getTimeMillis("3:00:00") - System.currentTimeMillis();  
      initDelayOne = initDelayOne > 0 ? initDelayOne : oneDay + initDelayOne;  
      long initDelayTwo  = getTimeMillis("3:00:00") - System.currentTimeMillis();  
      initDelayTwo = initDelayTwo > 0 ? initDelayTwo : oneDay + initDelayTwo;  

	 }
	 
	 public void timerOne(){  
	        scheduExec.scheduleWithFixedDelay(new Runnable() {  
	            public void run() {  
	            	...
	            	System.out.println("timerOne invoked .....");  
	             
	            }  
	        },0,5000, TimeUnit.MILLISECONDS);  
	    }  
	      
	   public void timerTwo(){  
	        scheduExec.scheduleAtFixedRate(new Runnable() {  
	            public void run() {  
	            	...
	                System.out.println("timerTwo invoked .....");  
	            }  
	        },2000,5000,TimeUnit.MILLISECONDS);  

	    }  
	   
	 /** 
	  * @param time "HH:mm:ss" 
	  * @return 
	  */  
	 private static long getTimeMillis(String time) {  
	     try {  
	         DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");  
	         DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");  
	         Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " " + time);  
	         return curDate.getTime();  
	     } catch (ParseException e) {  
	         e.printStackTrace();  
	     }  
	     return 0;  
	 }  
	 
	 public static void main(String[] args) {  
		    TimerManager test = new TimerManager();  
	        test.timerOne();   
	    }  
}

  

原文地址:https://www.cnblogs.com/zzlp/p/5121636.html