我正在努力打印出2秒钟后经过多长时间的时间。我不知道我做错了什么。请帮忙。
while(System.nanoTime()/1000000000<2){
System.out.println(System.nanoTime()/1000000000);
}
答案 0 :(得分:6)
您可以使用Thread.sleep()
方法等待几毫秒:
Thread.sleep(2000);
System.out.println("Two seconds have passed");
答案 1 :(得分:0)
&#34; X&#34;问题是发布的代码中的逻辑是错误的 - 它没有考虑操作何时开始,因此它永远不会知道等待了多长时间。考虑以下代码,虽然在这里不理想,但在处理等待发生这种情况的时间和循环时,它是一个 common 习语。
long start = System.nanoTime();
while (true) {
long now = System.nanoTime();
long elapsed = now - start;
if (elapsed >= (2 * 1000000000)) {
// Yup, more than 2s between when we started and now.
break;
}
// Otherwise, make toast (ie. make the CPU get hot)..
// ..but we can help that a bit with a "yield" - run it with and without
// the following line commented and view the CPU usage in a process monitor.
Thread.sleep(0);
}
System.out.println("Time up!");