Jetty で Web アプリケーションを作成して実行しています。ExecutorService を使用して
、このような新しい Threadpoolを作成しました。
ExecutorService es = Executors.newFixedThreadPool(10);
しかし、アプリケーション サーバーに独自のスレッド プールを作成することはお勧めできないと聞いたので、アプリケーション サーバーにスレッドを処理させる必要があります。
では、Jetty でそれを行うにはどうすればよいでしょうか。
申し訳ありませんが、私は Jetty を初めて使用します。よろしくお願いします
ここにプログラムがあります、
public class SampleExecutors {
public SampleExecutors() {
ExecutorService executors = Executors.newFixedThreadPool(10);
Callable<List<Map<Record,String>>> text = new TextSearcher(domain, searchText);
Future<List<Map<Record,String>>> submit = executors.submit(text);
executors.shutdown();
}
}
log.info("Active threads count:"+Thread.activeCount());
ここでは、作成されたワーカー スレッドがタスクを完了した後、executors.shutdown() を呼び出しています。
それでも、Thread.activeThreads() を実行すると、作成されたスレッドが表示されます。
そのため、インスタンス化はコンストラクター内にあり、シングルトンではないため、SampleExecutors が呼び出されるたびに、新しいスレッドプールが作成されます。
エグゼキューターを静的にしたり、コンストラクターから移動したりしたくありません。作成されたスレッドがタスクを実行した後に、それらを閉じるまたは強制終了する方法を知りたいです。