2013-09-05 4 views
1

У меня есть веб-приложение, созданное и запущенное на 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.

Я не хочу, чтобы исполнители статичные или переместили их из конструктора, я хочу знать, как закрыть или убить созданные потоки после того, как они будут выполнять задачу.

ответ

1

Afaik jetty - это не AS, а простой веб-сервер с контейнером сервлетов. Запись многопоточного кода в контейнере сервлетов в порядке.
Futher чтение:
Difference between each instance of servlet and each thread of servlet in servlets?
http://balusc.blogspot.co.uk/2010/06/servlet-lifecycle-and-multithreading.html

+0

Ok .. Так что вы имеете в виду, что это не обязательно, чтобы создать пул потоков из стороны сервера? То, как я это сделал, также приемлемо? –

+0

Да. Если многопоточность в порядке, исполнители тоже будут в порядке. – zeller

+0

Я добавил еще несколько вещей в мой вопрос о том, почему я чувствую, что создание собственного исполнителя. Сервис/Threadpool может быть неправильным. –