I have to do an exercise for a parallel computing course.
The task is using N parallel processes to remove all combinations of letters "RTY" from the string.
Normally I'll do it with
String strAfter=str1.replaceAll("[RTY]","") ;
But how to make it in parallel?
3 回答
2
拆分,工作,合并。
- 在主线程中拆分,将输出存储在
Set
- 创建 N 个工作线程。
- 让每个工作线程
syncrhonized pick()
从给定集合中获取一个字符串index
,增加索引并处理条目 - 当
index
达到Set
大小时,将所有东西粘在一起。您可能想要使用StringBuilder
andappend()
而不是连接字符串
于 2015-04-27T10:44:53.183 回答
1
将字符串拆分为 N 个部分,然后让每个进程在一大块字符串上工作。拆分机制应该足够智能以处理边界值。您需要使用Send()和Recv()方法将一大块字符串传递给相应的进程进行处理,最后更新的字符串应该以相同的方式传递。在这里您可以找到 Javadocs http://mpj-express.org/docs/javadocs/index.html
于 2015-04-27T09:12:14.357 回答
0
我的猜测是您需要找到一种方法来做到这一点,而无需在整个字符串上使用单线程函数。将字符串分成 N 个部分并让 N 个并行进程中的每一个在该部分上运行替换函数并在所有线程完成后连接字符串怎么样?
于 2015-04-26T12:36:34.547 回答