マルチプロセッシング ライブラリを使用する 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 ファイルでいくつかのコードを操作しているときにこれに引っ掛かりました。なぜそれが起こるのか知っている人はいますか?