我有支持多个工作流程的java应用程序。使用从命令行传递给它的参数选择工作流。在其中一个工作流应用程序需要运行无限时间。我使用以下代码
实现了相同的目标switch (args[0]) {
case "-runForever":
// Some Computation
Thread.sleep(Long.MAX_VALUE);
break;
case "otherCase:
//dosomething
break;
}
这是实现所需功能的好方法吗?
答案 0 :(得分:5)
你可以使用无限循环:
while(true){}
然而,这会毫无理由地耗尽CPU。相反,你可以调用wait()方法:
synchronized{
wait();
}
然后继续,你从另一个线程调用notify()。
更多信息here。
您也可以启动另一个非守护程序线程。
答案 1 :(得分:-1)
如果你想要的只是它永远不会到达目的为什么不
while (1)