我使用Java 多线程和并发工具相对较新。我正在实现一个具有事件生产者的应用程序(我们称之为EventProducer
)。EventProducer
有一个线程池FixedThreadPool
,每个要处理的事件发送一个新EventProcessor
线程,向池提交一个新线程。
一切正常,每个事件都在池中创建一个线程。但是问题是我想将该EventProcessor
线程(特定于每个事件请求)与两个应该是应用程序范围的线程进行通信,我的意思是,我在应用程序中只有一个它们的实例,比如说Service1
and Service2
。它们都有线程池,能够同时处理任务。
该特定EventProcessor
发送任务集Service1
并返回每个任务的响应。对于这些响应,我一直在寻找CompletionService但我不知道如何将它与阻塞队列集成以进行双向通信。之后,根据该响应,EventProcessor
发送一个或另一个动作以在 中执行Service2
。Service2
还将向 发送有关该操作的响应EventProcessor
。
有人知道我该如何解决这样的问题吗?为了实现第一步,我需要一个介绍。汇集你的想法。