if __name__ == "__main__":
content = input_file(target).split("\n")
content = manager.list(content)
for files in source:
obj_grab.append((LogCatcher(files), content))
pool = Pool()
pool.map(transferConcat, obj_grab)
pool.close()
pool.join()
def concatMessage(LogCatcher, content):
for key in LogCatcher.dic_map:
regex = re.compile(key)
for j in range(len(content)):
for m in re.finditer(regex, content[j]):
content[j] += LogCatcher.index + LogCatcher.dic_map[key]
def transferConcat(args):
return concatMessage(*args)
当我使用pool.map()
时,完成此代码需要82秒。
虽然我使用普通for循环来运行此代码,但需要11秒。
当我使用这两种方法获得正确的输出时,pool.map()一定是错误的。
我的代码可以并行化吗?
obj_grab
是一个列表,其中包含具有不同文件输入的logCatchers。 content
是我要连接的列表,我使用manager()
让multiprocess连接相同的列表。