我有以下课程,该课程安排每5分钟执行一次“ update”方法。问题是我希望“更新”执行固定的次数。当我使用scheduler.shutdown()时,update方法不再执行,但是程序仍在运行,我想什么也不做。

如何完全停止?

static Runnable update = new Runnable() {
    @Override
    public void run() {

        if (count >= MAX_UPDATES) {
            scheduler.shutdown();
        } else {
            //Do something
            count++;
        }
    }
}

public static void main(String[] args) {

    ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
    scheduler.scheduleAtFixedRate(update, 0, 5, TimeUnit.MINUTES);
}

最佳答案

您可以使用System.exit(int exitCode);

请注意,如果这样做,jvm将立即终止。这也是finally{}块不会执行的唯一情况。

07-26 09:27