Thread.sleep()在64位刀片服务器的java中挂起

时间:2012-11-09 12:33:58

标签: java

我有重复安排固定时间任务的场景。通过使用Thread.sleep(long ms)方法调用另一个实现runnable接口的类的start方法生成固定延迟。 但是当我在我的本地电脑上测试这个应用程序时,它正在工作。但是当我在具有操作系统(Windows服务器2008 R2)的ibm刀片服务器(64位)中运行此应用程序时,它无法按预期工作。它不是出于睡眠的方法。

请建议解决方案?

先谢谢你。

1 个答案:

答案 0 :(得分:0)

您的问题中没有太多信息可以查看问题所在。 Thread.sleep应该返回或抛出异常。也许正在发生一些不同的事情。例如,异常已经发生,被捕获和遗忘,或者您在某处遇到了死锁。无论如何,不​​同版本的Java有时会有微妙的差异导致错误。你必须自己调查这个问题。

  • 尝试调试应用程序。当它挂起时,按Pause并检查所有线程以找到悬挂的线程。
  • 如果您无法在服务器上安装调试器,请在代码的每个合理位置添加System.out.println;阅读控制台中的输出,您可能能够找到问题。
  • 如果无法使用控制台启动应用程序,请创建一个文本文件并将消息写入其中。不要忘记每次flush