我试图找出为什么我正在处理的Python程序在某些进程中挂起。该程序使用线程和进程。它使用多处理PipeConnection对象在进程之间传递数据。
我发现问题的一部分是在一个线程(生成数据并将其发送到另一个进程以用于计算)中,对“poll”的调用永远不会返回:
if calcDataPipe.poll(0.1):
calcDataPipe是一个PipeConnection,在主线程中使用“Pipe(True)”创建 - 与调用线程不同。
是否有人知道“民意调查”电话可能无法返回的原因?我虽然超时会保证返回,但是在通话之前和之后的打印清楚地表明它没有。
忘了提 - 我正在使用CPython,2.7.6
编辑:
这似乎是由队列中的数据量引起的 - 限制数据传输使问题消失了,虽然我不会把它称为解决方案...这似乎是一个(windows)CPython bug。