2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 joblib и переменные обьекта
Сообщение16.04.2016, 16:59 


17/04/06
256
Вот мой код:

Код:
from joblib import Parallel, delayed

def main():
    a = Par_test()
    b = Par_test()
    temp_list = [a, b]

    Parallel(n_jobs=2)(delayed(update_field)(el) for el in temp_list)
    print(a.sample_field)
    print(b.sample_field)


def update_field(some_object):
    some_object.sample_field = 'some_value'


class Par_test:
    def __init__(self):
        self.sample_field = None


if __name__ == '__main__':
    main()


Я от него жду
Код:
some_value
и
Код:
some_value
, a получаю
Код:
None
и
Код:
None
В чем ошибка?

 Профиль  
                  
 
 Re: joblib и переменные обьекта
Сообщение16.04.2016, 18:57 


27/08/14
206
По умолчанию Parallel создаёт отдельные процессы, поэтому объекты, изменённые в дочерних процессах остаются неизменными в родительском. Вы можете использовать вместо процессов потоки:
Используется синтаксис Python
Parallel(n_jobs=2, backend="threading")(delayed(update_field)(el) for el in temp_list)
или использовать какой-либо метод межпроцессного взаимодействия.

 Профиль  
                  
 
 Re: joblib и переменные обьекта
Сообщение16.04.2016, 19:56 


17/04/06
256
Большое спасибо, Progger! Видать мне все таки надо будет разобраться между потоками и процессами. Я хотел на халяву проскачить.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group