0

在运行一些使用多处理库的 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 文件中的一些代码时被这个抓住了。有谁知道为什么会这样?

4

0 回答 0