将两个core.async通道的管道合并为一个

时间:2015-12-04 09:18:10

标签: clojure core.async

我有两个通道 A B 的管道,处理看起来比A --> operation --> B。输入放入 A ,结果从 B 读取。

我希望有一个频道 C put!会将值放到 A B < / em>也会发出该值。因此它会将 A B 通道包装到一个通道中。 A 的读端口是 C 的读端口, B 的写端口是 C的写端口

如何做到这一点?谢谢你的建议。

2 个答案:

答案 0 :(得分:0)

如果我了解您的要求,而且我不确定,我可以想到两种可能的解决方案。

第一个是pipline命令,它允许您在中间连接进出通道和设置处理,这可以进一步并行以提高性能。

但是,根据你的描述,我想你可能会发现!更好的解决方案。这将允许您定义多个输入通道,您可以在其中从一个或另一个获取数据,处理数据,然后将其放入输出通道。

答案 1 :(得分:0)

Gidday队友,

我理解你是否希望通道C既是输入又是输出?我不确定“香草”频道操作是否可行;一旦B投入C,A就会再次拿起它。你真的需要单独的输入和输出通道。

你想解决什么需要这种结构?也许它可以通过另一种方式解决?