我试图了解如何Pool()
以及Manager()
可以在 Python 的多处理库中组合以在各个工作进程之间共享对象。在我的示例中,我想要一个共享列表input_list
,它应该可供所有工作进程访问:
from multiprocessing import Pool, Manager
def f(x):
input_list.append(x)
return x**2
if __name__ == '__main__':
manager = Manager()
input_list = manager.list()
with Pool(processes=3) as pool:
results = pool.map(f, range(10))
print(input_list)
但是,我得到一个NameError: name 'input_list' is not defined
. 知道为什么input_list
不被识别为共享对象吗?