相关疑难解决方法(0)

如何让Pool.map采用lambda函数

我有以下功能:

def copy_file(source_file, target_dir):
    pass
Run Code Online (Sandbox Code Playgroud)

现在我想用来立即multiprocessing执行这个功能:

p = Pool(12)
p.map(lambda x: copy_file(x,target_dir), file_list)
Run Code Online (Sandbox Code Playgroud)

问题是,lambda不能被腌制,所以这就失败了.解决这个问题最简洁(pythonic)的方法是什么?

python pool multiprocessing

50
推荐指数
3
解决办法
2万
查看次数

如何在导入的模块中使用multiprocessing.Pool?

我无法在这里实现这个建议:同时将两个函数应用于两个列表.

我想这是因为模块是由另一个模块导入的,因此我的Windows会生成多个python进程?

我的问题是:如果没有if,我怎么能使用下面的代码 if __name__ == "__main__":

args_m = [(mortality_men, my_agents, graveyard, families, firms, year, agent) for agent in males]
args_f = [(mortality_women, fertility, year, families, my_agents, graveyard, firms, agent) for agent in females]

with mp.Pool(processes=(mp.cpu_count() - 1)) as p:
    p.map_async(process_males, args_m)
    p.map_async(process_females, args_f)
Run Code Online (Sandbox Code Playgroud)

这两个process_malesprocess_females是fuctions. args_m, args_f是迭代器

另外,我不需要退货.代理是需要更新的类实例.

python multiprocessing python-multiprocessing

4
推荐指数
2
解决办法
4639
查看次数