我有这个简单的代码片段:
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(10);
Runnable r = new Runnable() {
@Override
public void run() {
System.err.println(Calendar.getInstance().getTime());
}
};
exec.scheduleAtFixedRate(r,0, 500, TimeUnit.MILLISECONDS);
}
Run Code Online (Sandbox Code Playgroud)
在一台计算机上,此代码按预期运行.控制台输出:
但是在另一台机器上,控制台上的时间戳显示ScheduledThreadPoolExecutor迟到了.迟到我的意思是几秒钟:)
代码成功运行的第一台机器的详细信息:
i3 Windows 7 64位JRE 1.6.0.30
调度迟到的第二台机器的详细信息:
双核Windows XP 32位JRE 1.6.0.18
我想知道为什么会有这样的差异.有什么建议 ?
提前致谢.