【发布时间】:2019-01-31 02:15:29
【问题描述】:
我查看了类似的问题,尤其是this 答案。我的情况有点不同,所以问问题。
import os
import multiprocessing as mp
def fun1(str1):
#function def
if __name__ == '__main__':
pl1 = mp.Pool(processes=2)
pl2 = mp.Pool(processes=2)
for (d1,d2,d3) in os.walk('dirname'):
for d4 in d2:
pl1.map(fun1,d4)
for d5 in d3:
pl2 .map(fun1,d5)
#
我将文件和目录名称作为字符串传递给fun1()。但问题是,如果我使用pl1.map(fun1,d4),看起来python 会分隔每个字符串字符并将单个字符传递给fun1()。我希望将整个字符串 d4,d5 传递给 fun1() 并并行传递以减少运行时间。我创建了 2 个池 pl1,pl2,以便它们可以在顶级 for 循环中单独使用而不会造成任何问题。
知道如何解决这个问题吗?
【问题讨论】:
-
小心,如果你在条件内声明了 pl1 和 pl2,但你在它外面循环,如果你导入文件,你可能会遇到问题,因为条件部分不会被执行
-
谢谢,它们没有在条件内声明。
标签: python python-2.7 multiprocessing python-multiprocessing