我使用多处理池在不同的进程之间划分任务。 我注意到一个奇怪的行为,即只有一半的预期工作人员在调用map\u async后开始工作
就是我打电话的时候,
pool = Pool(12, init_func, (pram1, param2, param3))
pool.map_async(main_process_func, list_of_items, chunksize=1)
我看到实际上有6个工人开始执行main_process_func
但当我添加参数maxstasksperchild=1时,即:
pool = Pool(12, init_func, (pram1, param2, param3), maxtasksperchild=1)
pool.map_async(main_process_func, list_of_items, chunksize=1)
然后我看到12个工人开始执行main_process_func
据我所知,maxtasksperchild应该与此行为无关。 你认为这是为什么?首先,为什么只有一半的工人开始跑步
Python版本:3.6.9 操作系统:Ubuntu 18.04.4
目前没有回答
相关问题 更多 >
编程相关推荐