zoukankan      html  css  js  c++  java
  • 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();   
    	    }  
    }
    

      

  • 相关阅读:
    E. Arranging The Sheep
    B. Box Fitting
    E. Permutation by Sum
    D. Corrupted Array
    联通 F677V2 光猫改桥接
    IntelliJ IDEA 常用快捷键整理
    Git 常用命令速查表
    Git 入门操作指南
    Anaconda 常用命令总结
    VS code 快捷键整理
  • 原文地址:https://www.cnblogs.com/zzlp/p/5121636.html
Copyright © 2011-2022 走看看