我难以并行化new_text
类型为unicode的代码部分:
for old, new in self.replacements:
line = pywikibot.replaceExcept(
line, old, new, self.excsInside, self.site)
if new_text != entry.text:
yield pywikibot.Page(self.site, entry.title)
使用joblib或process-pool可以轻松完成任务,但在循环外部使用new_text
。我不知道相当于#pragama omp ordered
或#pragma omp atomic
,因为Python没有OpenMP包装...
如果new_next与if
语句并行运行,我如何确定它的值是什么?
答案 0 :(得分:0)
由于它本质上是顺序的,因此您可以按行并行化:
for line in new_text
for old, new in self.replacements:
line = pywikibot.replaceExcept(
line, old, new, self.excsInside, self.site)
你并行外部for
循环(映射每个替换,然后通过连接减少)。