我正在尝试使用 Java 8 Lambda/Stream API 来建模一个简单的生产者/消费者系统,就像:
Stream<Sample> samplesFlow = Stream.generate(new SampleSupplier());
samplesFlow.forEach(new SampleConsumer());
Run Code Online (Sandbox Code Playgroud)
我意识到向多个消费者“扩展”非常简单:
samplesFlow
.peek(new SampleConsumer1())
.peek(new SampleConsumer2())
.forEach(new SampleConsumer3());
Run Code Online (Sandbox Code Playgroud)
但是如何在系统中添加新的生产者呢?是否有一些惯用的或“优雅的”方式来从几个无限的供应商生成一个流?喜欢:
Stream.generate(new SampleSupplier1(),new SampleSupplier2()); // made it up
Run Code Online (Sandbox Code Playgroud)
每个供应商都模拟一个从远程源获取数据的网络侦听器。
提前致谢!