1
pythonのマルチプロセスのdocsによれば、無限プロセスの生成を防ぐために、プロセスの生成はif __name__ == '__main__':
節の内側にある必要があります。メインスクリプト以外でのPythonマルチプロセスの使用
私の質問では、インポート内でマルチプロセスを使用できますか?
本のこれらの線に沿って何か: のは、私がメインの実行ファイルで、このPYとしましょう:
import foo
def main():
foo.run_multiprocess()
if __name__ =='__main__':
main()
とインポートされfoo.pyファイル:
Obviuslydef run_multiprocess(number_to_check):
if number_to_check == 5:
print(number_to_check)
if __name__ == '__main__':
list_to_check = {1,2,3,4,5,6,7}
pool = Pool(processes=4)
pool.map(process_image, list_to_check)
をfoo.pyのif文内のコードは実行されないため、これは機能しません。それを動作させる方法はありますか?
私が理解する限り、 'm1 import f2から'を実行すると、新しいプロセスが作成されます。ウィンドウでは、元のプロセスのすべてのフィールドを新しいプロセスにコピーします。新しいプロセスを作成している間に、 'm1 import f2から'という行をもう一度実行し、 '__main__'節にないので、新しいプロセス*を何度も繰り返し作成します – Curtwagner1984