Я пытаюсь использовать joblib
для многопроцессорного добавления информации в словарь, но объект словаря выходит пустым с другой стороны.
Почему я могу передать объект словаря в функцию по ссылке,но не когда я прохожу через Parallel
? Как мне обойти это для параллельной обработки? Смотрите пример кода и вывод:
import multiprocessing
from joblib import Parallel, delayed
def add_dict(dct, k):
dct[k] = k
dct1 = {}
add_dict(dct1, 5)
print(dct1) # {5:5}
dct2 = {}
Parallel(n_jobs=multiprocessing.cpu_count())(delayed(add_dict)(dct2, k) for k in range(3))
print(dct2) # {}