Python 多线程处理字典:使用 multiprocessing 遍历字典并计算平方
下面是一个用 multiprocessing 多线程遍历处理字典的例子:
import multiprocessing
def square(key, value, result_dict):
if key == 'd':
del result_dict[key]
else:
result_dict[key] = value ** 2
if __name__ == '__main__':
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
result_dict = multiprocessing.Manager().dict()
# 创建进程池
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
# 遍历字典并处理
for key, value in my_dict.items():
pool.apply_async(square, args=(key, value, result_dict))
# 关闭进程池并等待所有进程完成
pool.close()
pool.join()
# 输出结果
print(dict(result_dict))
输出结果为:
{'a': 1, 'b': 4, 'c': 9, 'e': 25}
在这个例子中,我们使用了 multiprocessing.Manager().dict() 创建了一个共享字典,这样就可以在多个进程中同时操作同一个字典。然后我们创建了一个进程池,每个进程都调用 square() 函数来处理字典中的键值对。最后我们使用 dict() 函数将共享字典转换为普通字典,并输出结果。
原文地址: https://www.cveoy.top/t/topic/nv17 著作权归作者所有。请勿转载和采集!