zoukankan      html  css  js  c++  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 

    } }

     还有一种方式,定义两个定时器

    public class TimerTask1 extends TimerTask{
    
        @Override
        public void run() {
            System.out.println("bombing...");
            new Timer().schedule(new MyTimerTask2(), 4000);
        }
    
    }
    public class MyTimerTask2 extends TimerTask{
    
        @Override
        public void run() {
            System.out.println("bombing...");
            new Timer().schedule(new TimerTask1(), 2000);
        }
    
    }
    new Timer().schedule(new TimerTask1(), 2000);
            
            while(true){
                System.out.println(new Date().getSeconds());
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
  • 相关阅读:
    Ubuntu 12.04 gedit编辑器 中文乱码
    ubuntu设置vim语法高亮显示和自动缩进
    Linux学习小结(转)
    指向常量的指针和常量指针
    Android之EditText
    android之TextView
    Android存储机制之Preference
    android实现可拖动按钮
    用turtle画图
    torchvision里densenet代码分析
  • 原文地址:https://www.cnblogs.com/wq3435/p/6028807.html
Copyright © 2011-2022 走看看