我正在尝试使用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) # {}