如何将数据流式传输到操作链中

时间:2014-06-29 11:38:04

标签: java streaming

我正在尝试将单词从一个操作流式传输到另一个操作。换句话说,我认为我有三个类及其操作,即Cleaner.eraseDublicate()Matcher.detectCityNameTokenizer.concatenate()。此外,我有一个大的哈希表,word, frequency作为键,值。 我想构建一个如草图所示的流操作。也就是说,Tokenizer.concatenate()将读取哈希表上的前五个条目,并执行自己的操作;然后,将其结果流式传输到Cleaner.eraseDublicate()以便删除dublicate。此外,Cleaner.eraseDublicate()的结果将流式传输到Matcher.detectCityName()。 如何连接这些操作并仅获取五个条目并将它们流式传输到操作链?

             Tokenizer.concatenate() Cleaner.eraseDublicate() Matcher.detectCityName()
------------           ----------           ----------           ----------
| hash     | ------->  |        | ------->  |        | ------->  |        |
|   table  |           |        |           |        |           |        |
------------           ----------           ----------           ----------

1 个答案:

答案 0 :(得分:0)

我不明白你真正想要的是什么,但我认为Pipeline Design Pattern就是你所需要的。它专为并行编程而设计,仅在Patterns for Parallel Programming

中找到

简而言之,它由阶段 qeueu 结构组成。每个Stage从前一个队列获取数据并放入下一个队列。重要的是,BlockingQueue用于阻止队列中的数据不可用。

无论如何,请阅读博客文章,如果您有疑问,请告诉我。