在python2.7中,multiprocessing.Queue从函数内部初始化时会抛出一个错误的错误。我提供了一个重现问题的最小例子。多处理损坏的管道错误.Queue
#!/usr/bin/python
# -*- coding: utf-8 -*-
import multiprocessing
def main():
q = multiprocessing.Queue()
for i in range(10):
q.put(i)
if __name__ == "__main__":
main()
抛出下面的破管错误
Traceback (most recent call last):
File "/usr/lib64/python2.7/multiprocessing/queues.py", line 268, in _feed
send(obj)
IOError: [Errno 32] Broken pipe
Process finished with exit code 0
我无法破译原因。如果我们不能从函数内部填充Queue对象,那肯定会很奇怪。
精彩的回答。我要给另一个说明,在python3中这不会发生。 – hAcKnRoCk