以下是代码示例:
my_dict = {}
for elem in some_file.my_dict:
my_dict[elem] = my_dict.get(elem, {'value1': 0, 'value2': 'UP'})
static_var = generate_static_var()
pool = Pool(processes = 99)
chunks = [(static_var, list(my_dict)[i::99]) for i in range(99)]
failed_responses = pool.map(generate_separate_var, chunks)
池中的第一个进程很好,因为在第一个进程完成之前本地字典不会有所不同。但是,由于我正在执行多处理池,因此有99个线程同时运行,因此第一个进程完成后返回的值将被第99个进程完成丢失。有没有一种方法可以确保您不会丢失每个过程完成后返回的值?
答案 0 :(得分:0)
为了使Pool.map()
正常工作,映射中使用的函数应采用一个参数(可以是数据结构),仅基于该输入进行 计算,然后返回一个结果(也可能是数据结构)。
以这种方式进行编程时,给定函数将可迭代的输入“映射”为可迭代的结果。