在运行一些使用多处理库的python代码时,我注意到了奇怪的行为。这一切都在Windows下,可能是Windows的东西,但也许有人可以解释发生了什么。
如果我创建一个简单的python脚本并创建一个这样的池:
import multiprocessing
pool = multiprocessing.Pool()
print "made a pool"
while True:
pass
当我运行脚本时,我看到“制作了一个池”打印了8次,这是Pool()
创建的默认进程数,因为我的机器上有8个核心。
当我将脚本更改为:
import multiprocessing
def run():
pool = multiprocessing.Pool()
print "made a pool"
while True:
pass
if __name__ == '__main__':
run()
我看到“制作了一个游泳池”一次打印 - 这是我在两种情况下所期望的。
我想我通常会使用函数中的多处理库运行任何代码,但是在单个python文件中使用某些代码时会被这个代码捕获。有人知道为什么会这样吗?