我的程序从main开始,并启动一些执行程序工作的线程(读取传感器,更新数据库,向屏幕显示信息).我希望程序无限期运行.
在我的主要线程开始之后的那一刻,我只有:
public static void main(String []args)
{
//threads start here
while(true) {}
}
显然这是有效的,但我想知道它是否浪费资源循环.
有没有一种有效的方法来保持程序运行.有优雅的退出方式吗?
即在main中启动一个侦听键盘或事件的事件监听器?
如果它更好,我也试过这个:
while(true) {
TimeUnit.HOURS.sleep(1);
}
编辑:有关线程的更多信息:
我不确定它们是什么类型的线程.我正在实现一个名为gnu.io.SerialPortEventListener的接口,它启动并处理线程,因此它从我身上抽象出来.我将不得不看看API,虽然我认为它没有很好的文档记录,或者我认为是源代码.它们使JVM在IDE(blueJ)中保持活动状态,但在命令行上运行程序时则不行.
我只是使用接口的方法将一个事件监听器添加到一个启动线程运行的COM端口.
如果觉得《java保持运行_保持Java程序无限运行的方法是有效的吗?》对你有帮助,请点赞、收藏,并留下你的观点哦!