下面是一个用 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() 函数将共享字典转换为普通字典,并输出结果。

Python 多线程处理字典:使用 multiprocessing 遍历字典并计算平方

原文地址: https://www.cveoy.top/t/topic/nv17 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录