У меня проблема. Определенные мной классы передаются multiprocessing.Pool()
во время вычислений. Затем я хочу сохранить объекты thoose с pickle.dump()
после завершения всех вычислений.
Чтобы упростить вычисления, я предварительно вычисляю некоторые вещи перед отправкой объектов в процессы. Затем, при сохранении на диск, эти предварительные вычисления больше не нужны, поэтому я хотел удалить их, используя механизм __setstate__
/ __getstate__
, как рекомендовано в документации pickle
.
В: Используется ли для травления, сделанного multiprocessing
, пользовательский __setstate__
/ __getstate__
? Если да, как я могу использовать разные __setstate__
/ __getstate__
для маринования и многопроцессорной обработки?
Действительно, мои предварительные вычисления выбрасываются и повторяются каждым процессом порождения ..
РЕДАКТИРОВАТЬ: Я основал это: многопроцессорность игнорирует "__setstate __" , которая рассматривает аналогичную проблему. Первый ответ показывает различия между windows и linux поведением (что проблематично c для меня ...). Но это 7 лет. Каково текущее состояние реализации по этому вопросу?