1

我想知道如果我进行无限循环(我正在检查程序是否已启动)并且当我检查的条件为真时,我使用 system.exit 是否是糟糕的编码习惯和/或一些后果。

4

2 回答 2

9

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

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

于 2013-05-02T20:06:27.507 回答
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.
    }
}
于 2013-05-02T20:19:39.777 回答