Java基本时序

时间:2012-05-13 20:20:04

标签: java timing

目前我的项目没有时间安排并且令人满意,但如果我有时间安排会更加清洁。在我宣布需要的任何东西后,我想拥有它,我可以做类似的事情:

if (timer == 2000) {
    System.out.println("2 seconds have passed since "timer" was declared!");
}

我还没有看到那么多。对不起,如果我错过了什么。我只是在寻找最佳方法。

修改
我被问到有关为什么我需要这个的更多细节...顺便说一下这是一个僵尸游戏

while(!Display.isCloseRequested()){
    if (whatever == 2 seconds){    //I obviously know a don't right the word seconds next the number 2
        for(int z = 0; z < 2; z++){
            SpawnaZombieAt(leftcorner,20,speed);
        }
     }
}

如果我不够清楚我正试图启动某种计时器。然后每2秒钟左右会产生2个僵尸

2 个答案:

答案 0 :(得分:2)

您在寻找System.currentTimeMillis()还是System.nanoTime()?第一个是与UTC相对应的低精度计数器,而后者是一个高精度计时器,可用于确定经过的时间。

答案 1 :(得分:1)

如果您想在特定延迟后启动特定操作,可以使用ScheduledExecutorService - 例如:

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(new Runnable() {
    public void run() {
        System.out.println("2 seconds have passed since this action was scheduled!");
    }
}, 2, TimeUnit.SECONDS);

它将在2秒后打印你的句子。

如果您正在使用秒表,请回答this question propose several alternatives

编辑

在您进行修改后,ScheduledExecutorService有一个scheduleAtFixedRate method,可让您每2秒运行一次特定操作。