我想并行处理字符串中的一个过程以使其更快,该过程是由多个方法完成的。
String s = process1(sourcepage);
s= process2(s);
s= process3(s);
s= process4(s);
s= process5(s);
s= process6(s);
s= process7(s);
s= process8(s);
s= process9(s);
s= process10(s);
s= process11(s);
在知道process(n)
对process(n-1)
的结果执行的情况下,如何并行化该过程以使其更快。
假设字符串是HTML,而process(i)
是去除HTML中的标记(部分代码)。
因此,例如,我们要从HTML中删除页脚以及<div =class="something">
和<h1>
。
非常感谢您
答案 0 :(得分:1)
假设您知道某个进程无法修改s
,请并行化这些进程!
假设这是修改参数,则不能仅仅因为可能会丢失一些修改而并行运行此参数。
假设您有三个过程:
String
${string}
替换为Map<String, String>
中的值并行运行它们,每个将更新不同的String
,最后一个将为您提供结果。现在,您可以获取每个String
并尝试通过检查更改来合并它们,但这将变得很复杂。
请注意,如果p3
在p2
之前运行,则可能会导致某些字符需要删除。
我有两个建议:
String
分开(并行)进行处理,然后将结果合并在一起。需要在“安全”的地方对此进行拆分。如果要读取结构文本(例如JSON或XML),第二种解决方案将变得复杂,但是可以通过正确解析格式然后处理每个“节点”来解决。
基于这些处理,两种解决方案都可以完成或不可能。由您选择。
编辑:
假定字符串是一个“ HTML”,而过程(i)是删除HTML中的标记(部分代码)。
然后,您应该可以拆分“ HTML”以分别处理每个标签。使用XML库,这将非常安全。