首页 > 解决方案 > 使用 DirectProcessor 处理多个生产者

问题描述

DirectProcessor来自项目反应堆的javadoc说

请注意,与多个消费者一起,DirectProcessor 的当前实现支持多个生产者。但是,所有生产者必须在同一个线程上产生消息,否则将违反Reactive Streams Spec合同。

这个要求是否意味着所有onNext, onError,onComplete必须在同一个线程上调用?还是这仅适用于在提交之间没有发生之前同时提交的消息?查看处理器的实现,从多个线程中使用它似乎是安全的,只要两条消息永远不会同时提交。

套用这个问题,onNext只要这些调用之间存在发生之前的关系,从不同的线程调用是否安全?

标签: javaconcurrencyreactive-programmingproject-reactor

解决方案


推荐阅读