python多处理行为

时间:2013-09-10 16:53:42

标签: python windows python-2.7

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

0 个答案:

没有答案