下面我的代码给我奇怪的结果,显然你必须得到1000
,但实际上不要期望3500以下的任何东西。我得到了不同的运行3500-4500。我读了一些Thread.sleep完全不可靠的地方。为什么java不是Depcrecate它,如果它没用?Java Thread.sleep()无法正常工作,为什么?
是否有任何解决方案对此?
class MyClass {
public static void main (String[] args) {
long start, end, took;
start = System.currentTimeMillis();
for (int i=0; i<200; i++) {
try {
Thread.sleep (5);
} catch (Exception ex) {
ex.printStackTrace();
}
}
end = System.currentTimeMillis();
System.out.println("Start :: " + start);
System.out.println("end :: " + end);
took = end -start;
System.out.println ("Took: " + took);
}
您使用的是哪个平台和JDK/JRE?预计会有超过1000个(高达2000-3000的范围似乎非常合理)。 (顺便说一句,我越来越1010-1020一贯这里) – Mat 2012-02-28 21:22:40
开始:: 1330464140994 结束:: 1330464142016 注意到:1022 这里是我的结果,没有什么似乎很奇怪 – 2012-02-28 21:23:32
请使用[System.nanoTime(HTTP:/ /docs.oracle.com/javase/6/docs/api/java/lang/System.html#nanoTime())来测量代码执行。 – paislee 2012-02-28 21:24:06