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

时间:2013-05-02 20:04:38

标签: java loops

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

2 个答案:

答案 0 :(得分:9)

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

调用System.exit(0)没有任何内在错误;这一切都取决于它是什么样的程序。 (例如,Swing应用程序应该为应用程序的JFrame设置DISPOSE_ON_CLOSEEXIT_ON_CLOSE,然后关闭框架。)

答案 1 :(得分:2)

您可能最好使用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.
    }
}