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