나는 비교적 새로운 자바 멀티 스레딩 및 동시성 도구을 사용하고 있습니다. 나는 이벤트 프로듀서 (EventProducer
라고 부르 자)가있는 앱을 구현 중이다. EventProducer
에는 스레드 풀 FixedThreadPool
이 있습니다. 여기서 처리 할 이벤트 당 하나의 새 스레드가 전송되어 새로운 EventProcessor
스레드를 풀에 제출합니다.자바 멀티 스레드 통신
이벤트가 완료되면 풀의 스레드가 생성되고 있습니다. 그러나 문제는 애플리케이션 범위가 될 것으로 예상되는 두 개의 스레드로 각각 EventProcessor
개의 스레드 (각 이벤트 요청에 따라 다름)를 전달하고자한다는 것입니다. 즉, 애플리케이션의 인스턴스 만 가질 테니, Service1
및 Service2
. 둘 다 스레드 풀을 가지고있어 동시에 작업을 처리 할 수 있습니다.
특정 EventProcessor
은 작업 집합을 Service1
으로 보내고 각 작업에 대한 응답을 반환합니다. 그 대답 들어, 나는 CompletionService을 찾았지만, 나는 그것을 양방향 통신을 위해 Blocking queues과 어떻게 통합시킬 수 있을지 모른다. 그 응답에 따라 EventProcessor
은 Service2
에서 실행하기 위해 하나의 액션이나 다른 액션을 보냅니다. Service2
은 해당 작업에 대한 응답을 EventProcessor
에게 보낼 것입니다.
아무도 내가 그런 문제를 어떻게 해결할 수 있는지 알고 있습니까? 첫 단계를 수행하려면 소개가 필요합니다. 아이디어 풀기.
@ jtahlborn, 귀하의 의견은 실제로 그/그녀의 문제에 어떤 가치도 추가하지 않습니다! –
@jtahlborn 나는 몇 시간 동안 그 예를보고 있었고, 여기에 글을 쓸 수있는 구체적인 문제를 만들려고 노력했다. –
@ user717630 사실, 그렇습니다. OP는 각 이벤트에 대해 새로운 스레드를 생성하려고합니다. 그의 스레드 Service1과 Service2에는 스레드 풀이 있습니다. 어쩌면 여기에 몇 가지 용어를 혼동시킬 수도 있습니다. –