Python のマルチプロセッシング モジュールでは、start() メソッドと join() メソッドを使用して、Process オブジェクトの実行を制御します。
始める()
start() メソッドは、新しいプロセスを開始するために使用され、Process オブジェクトの作成時に指定されたターゲット関数の実行を開始します。Process オブジェクトで start() メソッドを呼び出すと、次のことが起こります。
オペレーティング システムは新しいプロセスを作成します。
新しいプロセスは、ターゲット関数とそれに渡されたパラメータの実行を、独自のメモリ空間を持つ別の環境で開始します。
from multiprocessing import Process
def my_function(x):
print(f'处理 {x}')
process = Process(target=my_function, args=(42,))
process.start() # 这将在一个新的进程中开始执行my_function
加入()
join() メソッドは、ターゲット プロセスの実行が終了するまでメイン プロセス (つまり、新しいプロセスを開始するスクリプト) をブロックするために使用されます。これは、プロセスを同期し、メイン プロセスがすべての子プロセスが完了するまで待ってから続行するようにする場合に便利です。
Process オブジェクトで join() メソッドを呼び出すと、次のことが起こります。
メイン プロセスはブロックされ、ターゲット プロセスの実行が完了するのを待機します。
ターゲット プロセスが完了すると、join() メソッドが戻り、メイン プロセスが実行を継続します。
from multiprocessing import Process
def my_function(x):
print(f'处理 {x}')
process = Process(target=my_function, args=(42,))
process.start() # 在一个新的进程中开始执行my_function
process.join() # 等待新进程完成后再继续
print("进程完成")
この例では、 join() メソッドにより、新しいプロセスで my_function の実行が終了した後にのみ「プロセス完了」メッセージが出力されるようになります。