1

「update」メソッドを 5 分ごとに実行するようにスケジュールする次のクラスがあります。問題は、「更新」を一定回数実行したいということです。scheduler.shutdown()を使用すると、更新メソッドはもう実行されませんが、プログラムはまだ実行されているため、何もしていないと思います。

どうすれば完全に停止できますか?

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);
}
4

2 に答える 2

0

使用できますSystem.exit(int exitCode);

これを行うと、jvm はすぐに終了することに注意してください。また、これはfinally{}ブロックが実行されない唯一の状況です。

于 2013-08-27T20:43:41.597 に答える