Python 多处理池挂起

Python 多处理池挂起,python,multiprocessing,gitpython,Python,Multiprocessing,Gitpython,我已经创建了一个池来使用Gitpython进行git克隆。有一个大型git回购,需要比其他人更多的时间来克隆。每个进程为一个repo执行一个克隆工作。我使用的池如下所示: multi\u res=[p.apply\u async(runfunc,args=(包括信息、项目根、跳过目录) 对于包含信息中的包含信息] LogInfo('正在等待所有子进程完成…') 对于范围内的i(len(包括信息)): 而不是多分辨率[i]。就绪() LogInfo(“立即下载”) 时间。睡眠(5) p、 关闭()

我已经创建了一个池来使用Gitpython进行git克隆。有一个大型git回购,需要比其他人更多的时间来克隆。每个进程为一个repo执行一个克隆工作。我使用的
如下所示:

multi\u res=[p.apply\u async(runfunc,args=(包括信息、项目根、跳过目录)
对于包含信息中的包含信息]
LogInfo('正在等待所有子进程完成…')
对于范围内的i(len(包括信息)):
而不是多分辨率[i]。就绪()
LogInfo(“立即下载”)
时间。睡眠(5)
p、 关闭()
p、 加入
在大多数情况下,它工作得很好。但在规模最大的回购协议中,这些债券往往会挂起。当我单独克隆回购协议时,它运行良好。所以我想知道python
multiprocessing.Pool
中是否存在一些块

我已经扫描了挂起的git克隆过程。git进程输出如下所示:

流程27649已附加
读取(6,0x7ffc36dae050,4)=?ERESTARTSYS(如果设置了SA_RESTART,则将重新启动)
---SIGALRM{si_signo=SIGALRM,si_code=si_内核,si_value={int=2895997,ptr=0x2c307d}---
rt_sigreurn()=0
读取(6,0x7ffc36dae050,4)=?ERESTARTSYS(如果设置了SA_RESTART,则将重新启动)
---SIGALRM{si_signo=SIGALRM,si_code=si_内核,si_value={int=2895997,ptr=0x2c307d}---
rt_sigreurn()=0
读取(6,0x7ffc36dae050,4)=?ERESTARTSYS(如果设置了SA_RESTART,则将重新启动)
---SIGALRM{si_signo=SIGALRM,si_code=si_内核,si_value={int=2895997,ptr=0x2c307d}---
rt_sigreurn()=0
读取(6,0x7ffc36dae050,4)=?ERESTARTSYS(如果设置了SA_RESTART,则将重新启动)
---SIGALRM{si_signo=SIGALRM,si_code=si_内核,si_value={int=2895997,ptr=0x2c307d}---
rt_sigreurn()=0
git lfs输出如下所示:

过程28006已附
[进程PID=28006以32位模式运行。]
futex(0x88b982c,futex_WAIT_PRIVATE,0,空

等待您的帮助。

好的,我已经找到了原因。这是因为我使用了
gitpython
lib,它有时会挂起