2013-09-05 5 views
1

Jetty에서 작성 및 실행중인 웹 응용 프로그램이 있습니다. 나는이 같은
새로운 스레드 풀을 만들 수 ExecutorService를 사용했다Jetty Java EE ExecutorsService

ExecutorService를 ES = Executors.newFixedThreadPool (10);

하지만 응용 프로그램 서버에서 자신 만의 스레드 풀을 만드는 것이 좋지 않다고 들었습니다. 응용 프로그램 서버가 스레드를 처리하도록해야합니다. .

그래서 어떻게 부두에서 할 수 있습니다.

실례를 내가 여기

사전

부두 및 감사에 새로 온 나는, 그 작업을 완료 생성 된 작업자 스레드 후 다음

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()); 

프로그램입니다 executor.shutdown()을 호출합니다.

그래도 Thread.activeThreads()를 실행하면 만들어진 t를 볼 수 있습니다. hreads.

그래서 Instatiation이 생성자와 singelton이 아니므로 SampleExecutors가 호출 될 때마다 새 스레드 풀이 만들어집니다.

Executors를 정적으로 만들거나 생성자에서 이동하지 않으려는 경우 생성 된 스레드가 작업을 제공 한 후에 닫거나 죽이는 방법을 알고 싶습니다.

답변

1

Afaik jetty는 AS가 아니며 서블릿 컨테이너가있는 간단한 웹 서버입니다. 서블릿 컨테이너에 다중 스레드 코드를 작성하는 것은 괜찮습니다.
학습과 독서 :
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

좋아 .. 그래서 당신은이 서버 측에서 스레드 풀을 만드는 데 필수적이지 뜻? 내가 한 일도 받아 들일 수 있니? –

+0

예. 멀티 스레딩이 괜찮 으면 executor도 괜찮을 것입니다. – zeller

+0

나는 왜 내 자신의 executorService/Threadpool을 생성하는 것이 잘못된 것일까에 대한 질문에 더 많은 것들을 추가했다. –