Python pool.map使我的脚本的其余部分更频繁地执行



使用我的示例脚本

from multiprocessing import Pool

def methodUsingPool(x):
if __name__ == '__main__':
pool = Pool()
pool.map(print, x)

methodUsingPool("x")
print("1")

获取输出

1
1
1
1
1
1
x
1

而我一直期待

x
1

为什么会这样?我能做什么?

行为将取决于您的操作系统。在macOS上(例如(,您将获得与所显示内容类似的输出。

然而,如果你这样做:

from multiprocessing import Pool
def methodUsingPool(x):
with Pool() as pool:
pool.map(print, x)
if __name__ == '__main__':
methodUsingPool("x")
print("1")

无论平台如何,你都会得到预期的输出

参见:Python 3多处理

最新更新