という名前のモジュールがありますmulti.py
。単純に multi.py をスクリプトとして実行したい場合、Windows でのクラッシュ (無数のプロセスの生成) を回避するための回避策は、マルチプロセッシング コードを以下に配置することです。
if __name__ == '__main__':
ただし、別のスクリプトからモジュールとしてインポートして呼び出しようとしていますmulti.start()
。これはどのように達成できますか?
# multi.py
import multiprocessing
def test(x):
x**=2
def start():
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()-2)
pool.map(test, (i for i in range(1000*1000)))
pool.terminate()
print('done.')
if __name__ == '__main__':
print('runs as a script,',__name__)
else:
print('runs as imported module,',__name__)
これは私のtest.py
実行です:
# test.py
import multi
multi.start()