首页 > 其他 > 详细

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

时间:2016-01-11 16:29:47      阅读:775      评论:0      收藏:0      [点我收藏+]
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();   
	    }  
}

  

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

原文:http://www.cnblogs.com/zzlp/p/5121636.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!