我正在尝试将单词从一个操作流式传输到另一个操作。换句话说,我认为我有三个类及其操作,即Cleaner.eraseDublicate()
,Matcher.detectCityName
,Tokenizer.concatenate()
。此外,我有一个大的哈希表,word, frequency
作为键,值。
我想构建一个如草图所示的流操作。也就是说,Tokenizer.concatenate()
将读取哈希表上的前五个条目,并执行自己的操作;然后,将其结果流式传输到Cleaner.eraseDublicate()
以便删除dublicate。此外,Cleaner.eraseDublicate()
的结果将流式传输到Matcher.detectCityName()
。
如何连接这些操作并仅获取五个条目并将它们流式传输到操作链?
Tokenizer.concatenate() Cleaner.eraseDublicate() Matcher.detectCityName()
------------ ---------- ---------- ----------
| hash | -------> | | -------> | | -------> | |
| table | | | | | | |
------------ ---------- ---------- ----------
答案 0 :(得分:0)
我不明白你真正想要的是什么,但我认为Pipeline Design Pattern就是你所需要的。它专为并行编程而设计,仅在Patterns for Parallel Programming。
中找到简而言之,它由阶段和 qeueu 结构组成。每个Stage从前一个队列获取数据并放入下一个队列。重要的是,BlockingQueue用于阻止队列中的数据不可用。
无论如何,请阅读博客文章,如果您有疑问,请告诉我。