У меня есть веб-приложение, созданное и запущенное на Jetty. Я использовал ExecutorService для создания
новый пул потоков, подобный этому,Jetty Java EE ExecutorsService
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());
Здесь, после созданных рабочих потоков выполнить свою задачу, я 'm вызывает executors.shutdown()
но все же, если я делаю Thread.activeThreads(), я вижу созданный t hreads.
Итак, что происходит, поскольку instatiation находится в конструкторе, а его не является единственным, для каждого вызова SampleExecutors создается новый threadpool.
Я не хочу, чтобы исполнители статичные или переместили их из конструктора, я хочу знать, как закрыть или убить созданные потоки после того, как они будут выполнять задачу.
Ok .. Так что вы имеете в виду, что это не обязательно, чтобы создать пул потоков из стороны сервера? То, как я это сделал, также приемлемо? –
Да. Если многопоточность в порядке, исполнители тоже будут в порядке. – zeller
Я добавил еще несколько вещей в мой вопрос о том, почему я чувствую, что создание собственного исполнителя. Сервис/Threadpool может быть неправильным. –