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

2024-10-08 18:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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秒

虽然我使用normalforloop来运行这段代码,但需要11秒

当我用这两个方法得到正确的输出时,pool.map()一定出了问题

我的代码可以并行化吗

obj_grab是一个列表,其中包含具有不同文件输入的日志捕捉器content是我想要连接的列表,我使用manager()让多进程连接到同一个列表


Tags: key代码inobjmap列表fordef

热门问题