我有一个ESXI服务器和一个OpenSuse 10.3发行版作为访客系统运行.在使用Thread.sleep()不占用100%cpu的
java(6_17)应用程序中,我注意到它有时再也不会唤醒,并且应用程序处于昏迷状态.我在睡觉之前就开始记录,并注意到时钟提前一小时几分钟跳跃,不久之后从其他线程记录的时间再次产生实时.
发布了一些Java错误,这些错误都是使用错误的时钟进入Linux浏览器.跳跃时间也存在一些虚拟机问题.有人看到类似的东西,所以我知道我将在哪里开始搜索?
甚至Object.wait()都被破坏了,因此我甚至无法整齐地关闭我的应用程序.可以调用Thread.sleep()经常触发从hareware多次更新?
解决方法
这里有几件事要尝试:
>确保已安装vmware工具.
>阅读Timekeeping in VMware Virtual Machines文档.
>阅读知识库文章:Timekeeping best practices for Linux guests这具有特定于SUSE的设置.
就个人而言,我发现使用java(1.6.0_16)可靠地使用VMWare工具提供时间同步,但是在Redhat和Solaris VM上而不是Suse.上面的2个文件应该有所帮助.