JAVA多线程-定时器的使用

使用定时器Timer,调用Timer的schedule方法,使用不同功能调用不同的重载方法,第一个参数都是传入一个TimerTask对象进去,就是定时器要执行的任务
一秒后炸一下

new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            System.out.println("bombing!");
        }
    }, 1000);

每隔两秒炸一次<一方式>

new Timer().schedule(new TimerTask() {

        @Override
        public void run() {
            System.out.println("bombing!");
        }
    }, 1000, 2000);

每隔两秒钟炸一次 <二方式>

new Timer().schedule((new TimerTest()).new MyTimerTask(), 2000);
class MyTimerTask extends TimerTask {

    @Override
    public void run() {
        System.out.println("bombing!");
        new Timer().schedule(new MyTimerTask(), 2000);
    }
}

先隔一秒炸一次,再隔两秒钟炸一次,再搁一秒钟炸一次,。。。。

new Timer().schedule(new MyTimerTask1(), 1000);
class MyTimerTask1 extends TimerTask {
private static int count = 0;
@Override
public void run() {
    count = (count + 1) % 2;
    System.out.println("bombing!");
    new Timer().schedule(new MyTimerTask1(), 1000 + count * 1000);
    }
}

里面有一个任务队列,无法找到源码TaskQueue

你可能感兴趣的:(JAVA多线程-定时器的使用)