用户工具

站点工具


踩坑记录:20230726python多进程卡主

这是本文档旧的修订版!


python多进程卡主

背景

在数据清洗等环节,有三位同学独立编写的python多进程在生产环境执行时卡主。在研发环境无法复现。 具体卡主的地方可能是:

  File "/opt/conda/lib/python3.8/multiprocessing/pool.py", line 856, in next
  self._cond.wait(timeout)
  File "/opt/conda/lib/python3.8/threading.py", line 302, in wait
  waiter.acquire() 

经过

在仔细调查后发现原因可能是系统在制作python进程副本时,对锁的处理不好。这个问题将在python版本的3.12版本Warning出来警告使用者。在python的3.14版本被完全修复。

结果

在python的3.14版本前,代码都写成单进程的模式。通过框架代码来调用各个py脚本实现多进程的能力。如果非要实现多进程,请参考 详细问题说明 仔细研究修改多进程代码。

踩坑记录/20230726python多进程卡主.1690354847.txt.gz · 最后更改: 2023/07/26 15:00 由 MNBVC项目组