【发布时间】:2011-11-09 02:13:18
【问题描述】:
所以我有多个步骤 stage 1 -> stage 2 -> stage 3 -> stage4 所以在某些情况下生产者将是一个消费者,并且在每个阶段都有多个生产者/消费者来使用多个 cpu。以防某些数据包会错过步骤,即直接从阶段 1 进入阶段 4。
所以我打算为每个阶段设置一个类,与前一个阶段共享一个 BlockingQueue,但我还读到 ExecutorService 像生产者/消费者模式一样工作,所以我尝试使用最好的抽象.
但是在我看来,使用 Executor,生产者位在提交给 executor 之前就已经完成,这不是我想要的顺序。
有人可以澄清一下吗?
【问题讨论】:
-
我认为最好将这种链接、调度和排序留给一些 SOA 工具,如 apache 服务组合,而不是实现我们的自定义。但是可以调用端点作为多个消费者。我认为手动实现这个有太多的变量和控制问题。只是一个想法。
标签: java concurrency consumer producer