나는 spring
ThreadPoolExecutorFactoryBean
을 사용하고 있습니다. 그것의 마스터 스레드 풀. 그리고 어떤 경우에는 CompletionService
을 만들어야 완성 된 스레드를 얻을 수 있습니다.마스터 스레드 풀을 사용하는 별도의 스레드 풀을 만드는 방법
내 코드 :
ExecutorService pool = Executors.newFixedThreadPool(list.size());
CompletionService<T> completionService = new ExecutorCompletionService<T>(pool);
문제는 내가 여기에 고정 스레드 풀을 만들려하지만, 너무 많은 스레드 생성을 방지하기 위해, 마스터 스레드 설문 조사를 사용하지 않는 것입니다.
물론 완료 서비스에서 마스터 스레드 풀을 전달할 수 없습니다. 완료 서비스에서 가치를 얻을 때 completionService.take()
완전히 관련이없는 스레드가 발생합니다.
아마도 마스터 스레드 풀에서 일종의 고정 된 스레드 풀을 생성하고 완료 서비스에 전달하는 방법을 찾는 것을 도울 수 있습니다.
많은 감사합니다.
어쩌면 당신은 하나의 쓰레드 풀을 가진 커스텀'ExecutorService'를 만들고, 다른 클래스의 태스크를위한 다른 큐를 만들 필요가 있습니다. 완전한 사용자 정의 객체 일 필요는 없으며 ThreadPoolExecutor 상단에 여분의 지능형 요소를 쌓아 올리는 래퍼 일 수도 있습니다. –