繁体   English   中英

Java中的无限循环和System.exit(0)

[英]Infinite Loop and System.exit(0) in java

我想知道如果进行无限循环(我正在检查程序是否已启动)是否会是错误的编码实践和/或某些后果,并且当条件Im检查变为真时,我将使用system.exit。

主动等待循环通常是一个糟糕的主意。 这会使整个机器变慢(包括其他程序的启动)。 找到一种只监听程序启动事件的方法。 没有您的代码的任何细节,我无法提供任何更具体的建议。

调用System.exit(0)并没有本质上的错误; 这完全取决于它是哪种程序。 (例如,Swing应用程序应该只为该应用程序的JFrame设置DISPOSE_ON_CLOSEEXIT_ON_CLOSE ,然后关闭该框架。)

使用java.util.Timer和java.util.TimerTask类,并在计时器到期时递归地重新启动它可能会更好。 正如上面的帖子所述,使用System.exit并没有天生的错误。

public static void main(String[] args){
    Timer timer = new Timer(); //create a new timer
    timer.schedule(new TaskLoop(), 1000); //schedule the task for 1000ms (1 sec)
}
class TaskLoop extends TimerTask {
    public void run() {
        System.out.println("here"); //timer's up, do whatever you need to do
        Timer timer = new Timer();
        timer.schedule(new TaskLoop(), 1000); //start another timer.
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM