0

次のように、ScheduleThreadPoolExecutor を使用してスケジュールされたコード呼び出しを作成しました。

ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(1);      
stpe.scheduleAtFixedRate(new Updatey(), 0, 60, TimeUnit.MINUTES);

シンプルなクラスを実行します:

class Update implements Runnable {
    public void run() {
        //update code here
}

Tomcatがシャットダウンされたときにメソッドを呼び出し、他のいくつかの整理作業を行うServletContextListenerがあります。しかし、Java を使用してこの余分なスレッドを終了時にクリーンアップする方法がわかりません。リスナーは別のプログラムで実行されるため、少し行き詰まります。

クローズアップ時にこれをクリーンアップする方法を知っている人はいますか?

ティア

4

1 に答える 1

2

それ以外の

ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(1);

スレッド ファクトリでコンストラクタを使用する

ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(1, threadFactory);

スレッドファクトリはデーモンであるスレッドを生成する必要があるため、シャットダウン時にこれらのスレッドは自動的に終了します。独自のファクトリを使用することも、単にグアバのThreadFactoryBuilderを使用することもできます。

于 2013-04-30T09:06:07.977 に答える