首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java多线程管道(7)

Java多线程管道(7)
EN

Stack Overflow用户
提问于 2013-10-07 01:47:37
回答 2查看 1.1K关注 0票数 0

我正在构建一个汇总器,我需要一个流水线实现。我已经使用了我自己的实现,但随着工作的增长,我发现它就是不能减少。

在java中有没有一个成熟的框架可以为我提供基础(基本上是同步逻辑)?

我需要声明一个阶段,每个阶段都有工人,工人处理项目并将结果返回给阶段,阶段将其发送到下一个阶段(可能会散开)。

我的实现的全部要点是为我提供这个基础,但是它不能正常工作(竞争条件会导致死锁)

我尝试过获取apache库(它基本上已经死了),但它没有创建stage workers的功能。

EN

回答 2

Stack Overflow用户

发布于 2013-10-07 02:22:05

只需将所有的阶段与阻塞队列连接起来,一切都将可靠地工作。如果生产者的工作速度比消费者快,则使用有界ArrayBlockingQueue来避免队列饱和。

大多数管道/数据流/参与者框架处理的任务非常小,以至于将单个线程分配给阶段都是一种开销,因此阶段共享一个线程池,因此工作线程的数量也是有限的。唯一一个(可能)在每个阶段使用多个线程的框架是FBP,但我不确定。

票数 0
EN

Stack Overflow用户

发布于 2014-09-17 21:54:29

Apache Camel:http://camel.apache.org/实现了您所描述的功能,但是可能会对您现有的设计造成太大的干扰。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19211903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档