我的代码可以用python多进程并行化吗?

时间:2015-05-02 10:33:56

标签: python parallel-processing multiprocessing

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连接相同的列表。

0 个答案:

没有答案