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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值