Как избежать копирования неглобального массива между процессами? - PullRequest
1 голос
/ 05 июля 2011

Я прочитал " Копируются ли общие данные только для чтения в разные процессы для многопроцессорной обработки Python? ", но описанный массив является глобальным.Можно ли сделать то же самое с локальными массивами?

1 Ответ

0 голосов
/ 05 июля 2011

Я так не думаю - но вы можете сохранить материал в переменной модуля. Если вы делаете это до форка (а у вас нет windows), он должен работать нормально.

Например

import mymodule

def somefunc(parameter):
    # do something with mymodule.var

# load/process local data
# save to module variable
mymodule.var = var
# now fork
p = multiprocessing.Pool(8)
p.map(somefunc, list_of_params)

Если вы используете ipython, вам также нужно поместить somefunc в модуль (функции выбора в main , похоже, не работают).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...