У меня есть веб-приложение, созданное и работающее на Jetty. Я использовал ExecutorService для создания
нового пула потоков, подобного этому,
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, создается новый пул потоков.
Я не хочу делать исполнителей статическими или перемещать их из конструктора, я хочу знать, как закрыть или убить созданные потоки после того, как они выполнят задачу.