• 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();   
    	    }  
    }
    

      

  • 相关阅读:
    解决python中write()函数向文件中写中文时出现乱码的问题
    解决Object() takes on paramenters的问题
    Flexbox
    node.js中的回调
    jQuery Mobile Api
    Sql Server总结
    文件夹和文件、Path类、流、序列化
    C# 字符串
    枚举|标志枚举+|(或)和&(与)运算|类型转换|值类型和引用类型|传参|异常|垃圾回收
    继承、多态、封装、接口
  • 原文地址:https://www.cnblogs.com/zzlp/p/5121636.html
Copyright © 2020-2023  润新知