Сценарий многопроцессорной обработки Python, по-видимому, без ошибок

Я пытаюсь использоватьmultiprocessing пакет для вызова функции (давайте назовем ееmyfunc) параллельно, конкретно используяpool.map то естьpool.map(myfunc, myarglist), Когда я просто перехожуmyarglist без использованияmultiprocessing нет ошибок, что должно быть, потому что все операции вmyfunc называются в пределахtry блок. Тем не менее, когда я вызываю функцию с помощьюpool.map скрипт постоянно останавливается, то есть перестает печатать «myfunc done!» оператор в моей функции и процессы перестают использовать процессоры, но он никогда не возвращаетсяresultlist, Я использую Python 2.7 из терминала в Ubuntu 12.04. Что может вызвать это, и как я должен исправить / устранить проблему?

cpu_count = int(multiprocessing.cpu_count())
pool = Pool(processes = cpu_count)
resultlist = pool.map(myfunc, myarglist)
pool.close()

Обновить Одной из проблем при использовании многопроцессорной обработки может быть размер объекта, если вы думаете, что это может быть проблемой, посмотрите этоответ, Как отмечается в ответе: «Если это [решение] не работает, возможно, материал, который вы возвращаете из своих функций, не может быть рассортирован и, следовательно, не может правильно пройти через очереди». Многопроцессорность передает объекты между процессами путем их травления. Оказывается, у одного или двух моих предметов был суп изBeautifulSoup что бы не засолить.

Ответы на вопрос(1)

Ваш ответ на вопрос