#python #multithreading #python-2.7 #lazy-loading
#python #многопоточность #python-2.7 #отложенная загрузка
Вопрос:
Давайте предположим, что есть класс
class Helper(object):
@property
def lazy_prop(self):
if not self.__model:
self.__model = init()
return self.__model
...
и у меня есть функция
def action(data):
#handle some actions which using Helper
и у меня есть некоторые данные, которые необходимо обрабатывать с action
помощью функции, подобной этой
data = ['bla-bla', 'foo-foo']
pool = Pool()
pool.imap(action, data)
Проблема в том, что свойство lazy инициализируется много раз, а не один раз. Почему это происходит и как это исправить?
Ответ №1:
При multiprocessing
этом, если вы создаете несколько заданий Helper.lazy_prop
, они будут инициализированы в каждом Process
.