首页 > 代码库 > Java多线程与并发库高级应用-传统定时器技术回顾

Java多线程与并发库高级应用-传统定时器技术回顾

传统定时器技术回顾(jdk1.5以前)

   

public class TraditionalTimerTest {
    static int count = 0;
    public static void main(String[] args) {
        
        //10秒后开始执行,每隔3秒执行一次
        new Timer().schedule(new TimerTask() {
            
            @Override
            public void run() {
                System.out.println("bombing...");
                
            }
        }, 10000,3000);
        
        /**
         *  需求:2秒,4秒间隔执行定时任务
         */
        class MyTimerTask extends TimerTask{
            @Override
            public void run() {
                count = (count+1)%2;
                System.out.println("bombing...");
                new Timer().schedule(new MyTimerTask(), 2000 + 2000*count);
            }
        }
        new Timer().schedule(new MyTimerTask(), 2000);
        
        
        while(true){
            try {
                System.out.println(new Date().getSeconds());
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        //quartz  周一~周五执行任务,周六日不执行
    }
}

 

Java多线程与并发库高级应用-传统定时器技术回顾