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();
                }
            }
  • 相关阅读:
    websocket --工作原理
    RabbitMQ
    django-缓存机制,form组件
    rabbitmq-安装
    学城项目
    django的orm--contenttype操作
    rest-framework序列化
    python模块与包
    python中的模块和包
    匿名函数python内置高阶函数以及递归
  • 原文地址:https://www.cnblogs.com/wq3435/p/6028807.html
Copyright © 2011-2022 走看看