使用Stream API组织应用程序管道

据我所知,Stream API旨在应用于集合。 但是我非常喜欢他们的想法,所以当我可以和不应该的时候,我会尝试应用它们。

最初我的应用程序有两个线程通过BlockingQueue通信。 首先会填充新元素。 第二个对它们进行转换并保存在磁盘上。 对我而言,看起来像是一个完美的流机会。

我最终得到的代码是:

 Stream.generate().flatten().filter().forEach() 

我想把几张map放在那里,但事实certificate我必须拖一个额外的字段直到forEach 。 因此,我要么必须创建具有两个字段和模糊名称的无意义的类,要么使用AbstractMap.SimpleEntry来传递两个字段,这对我来说并不是很重要。

无论如何,我改写了我的应用程序,它甚至似乎工作。 但是有一些警告。 因为我有无限的流’事物’无法阻止。 现在我在守护程序线程上启动它,但这不是一个解决方案。 业务逻辑(如连接丢失/发现,这可能不是BL)看起来疏远了。 也许我只需要代理。

另一方面,队列人口有自由懒惰。 一个线程而不是两个(不知道这有多好)。 希望熟悉其他开发人员的模式。

所以我的问题是使用Stream API进行应用程序流组织是否可行? 还有更多的不足之处吗? 如果没有推荐什么是替代品?