В python2.7 многопроцессорность.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