在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