Как параллельный процесс добавления данных в объект словаря в Python - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь использовать 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) # {}
...