簡體   English   中英

如何將“ for”循環與外部變量並行化?

[英]How I can parallelize a 'for' loop with an external variable?

我在將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)

使用joblibprocess-pool看起來任務很容易,但是在循環外部使用了new_text 我不知道#pragama omp ordered#pragma omp atomic的等效性,因為沒有適用於Python的 OpenMP包裝器...

如果並行運行,如何確定new_next的值在if語句中?

由於它本質上是順序的,因此您可以按行並行化:

for line in new_text
    for old, new in self.replacements:
        line = pywikibot.replaceExcept(
            line, old, new, self.excsInside, self.site)

並並行化外部for循環(映射每個替換,然后通過串聯減少)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM