python多处理池创建的工作线程数错误

2024-09-28 22:31:00 发布

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

我使用多处理池在不同的进程之间划分任务。 我注意到一个奇怪的行为,即只有一半的预期工作人员在调用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


Tags: ofmapasyncinitmainitemsprocesslist