美文网首页
java:timer(定时器)

java:timer(定时器)

作者: BenjaminCool | 来源:发表于2018-12-04 11:06 被阅读3次

    Timer

    geeksforgeeks

    Timer&TimerTask组合

     // 延迟5s执行任务
            new Timer("test1").schedule(new TimerTask() {
                @Override
                public void run() {
    
                    System.out.println("this is task delayed");
                }
            }, 5000);
    
     
    

    当任务执行时间超过 interval间隔时间, 则 任务执行间隔时间 以任务执行时间为准

     /*
    
        演示任务执行时间 远大于 interval:间隔时间的情况。
    
        task执行2000ms
    
        而 intervals 执行间隔是1000ms
    
            最终的结果是: 执行间隔 2000ms
            
         */
        @Test
        public void test2() {
    
    
            final long[] lastTs = {0L};
    
    
            new Timer("test2").schedule(new TimerTask() {
                @Override
                public void run() {
    
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                    lastTs[0] = System.currentTimeMillis();
    
                    System.out.println("lastTs[0]: " + lastTs[0]);
    
                }
            }, 0, 1000);
    
            while (true) {
    
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    

    线程池替代方案: ScheduledThreadPoolExecuter

    相关文章

      网友评论

          本文标题:java:timer(定时器)

          本文链接:https://www.haomeiwen.com/subject/uifmcqtx.html