等待Java中的给定时间

时间:2012-09-13 14:15:36

标签: java

我只是想知道是否有办法等待(秒)。我测量java中的内存,然后我调用垃圾收集,一段时间后我想再次测量内存。我想过石英但是它太复杂了,我听说thread.sleep不准确..

感谢名单

3 个答案:

答案 0 :(得分:2)

请参阅sleep

Thread.sleep导致当前线程暂停执行指定的时间段。这是使处理器时间可用于应用程序的其他线程或可能在计算机系统上运行的其他应用程序的有效方法。

答案 1 :(得分:1)

如果你想要更准确的东西,你可以使用nanoTime。

   public static void sleepNanos (long nanoDuration) throws InterruptedException {
        final long end = System.nanoTime() + nanoDuration;
        long timeLeft = nanoDuration;
        do {
            if (timeLeft > SLEEP_PRECISION)
                Thread.sleep (1);
            else
                if (timeLeft > SPIN_YIELD_PRECISION)
                    Thread.yield();

            timeLeft = end - System.nanoTime();
        } while (timeLeft > 0);
    }

答案 2 :(得分:0)

Thread.sleep(1000);将睡眠1秒。
但你不会像你期望的那样释放任何记忆。
使用某些分析工具(如visualvmyourkit)来执行GC。如果您使用的是Netbeans,则它内置了分析器。