在python中怎么用multiprocessing多线程遍历处理字典字典为a 1 b 2 c 3 d 4 e 5定义了一个函数square当key的值不为d时用于计算其参数的平方当key的值为d时从字典里删除这个键值对。输出结果为a 1 b 4 c 9e 25
下面是一个用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/csoQ 著作权归作者所有。请勿转载和采集!