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()

「made a pool」が 1 回表示されます。これは、どちらの場合も予想していたことです。

私は通常、関数から multiprocessing ライブラリを使用して任意のコードを実行すると思いますが、単一の python ファイルでいくつかのコードを操作しているときにこれに引っ掛かりました。なぜそれが起こるのか知っている人はいますか?

4

0 に答える 0