为什么一个TimerTask会降低另一个?

时间:2015-08-05 10:08:01

标签: java timer timertask

我有一个Timer Task,可以更新所有玩家位置:

public void run(){
    updateWatcher = new TimerTask() {
        public void run() {
            update(0.1);
        }
    };

    t.scheduleAtFixedRate(updateWatcher, 5, 5);
}

我还有另一个TimerTask,它会更新所有射弹位置:

UpdateWatcher = new TimerTask() { //Different variable. Note the capital U.
        public void run() {
            for (Bullet b : bullets){
                b.update();
            }
        }
    };
    t.scheduleAtFixedRate(UpdateWatcher, 5, 5);
}

然而,第二个TimerTask正在减慢第一个。如果我删除迭代,就像这样:

UpdateWatcher = new TimerTask() {
        public void run() {

        }
    };
    t.scheduleAtFixedRate(UpdateWatcher, 5, 5);
}

玩家以正确的速度移动。但是,只要我重新添加代码(使用Eclipse de-bugging将其直接添加),延迟任务的执行频率就会降低很多,导致玩家的移动速度比平常慢10倍。

可能导致这种情况的原因,我该如何解决?

0 个答案:

没有答案