現在のプロセスがインポートされたモジュール内から親プロセスか子プロセスかを判断するにはどうすればよいですか?現在のプロセスの実行が親プロセスかどうかを確認するにはどうすればよいですか?
具体的には、コードを最初に実行したとき(つまり、サブプロセスが開始されてからそのモジュールをインポートするまで)に実行する必要がある、インポートするモジュールにいくつかのコード行があります。
メインモジュールでは、if __name__ == '__main__':
を使用してこれを実現できましたが、これはインポートされたモジュールでは機能しません。関連する、現在のコードの場合は
が含まれています:私が間違っている場合
import multiprocessing as mp
pool = mp.Pool(processes=7, maxtasksperchild=1)
all_items = [pool.apply_async(sub_process, args=(value,) for value in all_values]
for item in all_items:
item.get()
あなたの質問は私を混乱させます。この場合、 '__name__'は赤いニシンです。関数 'sub_process'の中で、あなたは子プロセスにいます。その機能の外にあなたは親プロセスにいます。あなたは何を達成しようとしているのですか? – RobertB
@RobertB - それに応じて編集された質問。 – kyrenia
"setup"のようなコードを別の関数に分けることができますか?次に、プロセスを起動する前に 'module1.setup()'を呼び出します。 – RobertB