我正在构建一个摘要器,我需要一个管道实现。我使用了自己的实现,但随着工作的增长,我发现它不会削减。
java中是否有成熟的框架为我提供了基础(基本上是同步逻辑)?
我需要声明一个阶段,每个阶段都有工人,工人处理项目并将结果返回到阶段,阶段将其发送到下一个阶段(可能会扇出)。
我实施的重点是给我这个基础,但是它不能正常工作(导致死锁的竞争条件)
我试过获取 apache 库(基本上已经死了),但它没有创建舞台工作者的功能。
我正在构建一个摘要器,我需要一个管道实现。我使用了自己的实现,但随着工作的增长,我发现它不会削减。
java中是否有成熟的框架为我提供了基础(基本上是同步逻辑)?
我需要声明一个阶段,每个阶段都有工人,工人处理项目并将结果返回到阶段,阶段将其发送到下一个阶段(可能会扇出)。
我实施的重点是给我这个基础,但是它不能正常工作(导致死锁的竞争条件)
我试过获取 apache 库(基本上已经死了),但它没有创建舞台工作者的功能。
Apache Camel:http ://camel.apache.org/ 按照您的描述进行,但可能对您现有的设计造成太大干扰。
只需将所有阶段与阻塞队列连接起来,一切都会可靠地工作。如果生产者工作得比消费者快,请使用有界ArrayBlockingQueue来避免队列饱和。
大多数管道/数据流/actor框架处理的任务非常小,即使将单个线程分配给一个阶段也是一种开销,因此阶段共享一个线程池,因此工作线程数量有限。(可能)每个阶段利用多个线程的唯一框架是FBP,但我不确定。