使用我的示例脚本
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多处理