Pythonで複数のスレッドを同時に実行し、すべてのスレッドが終了するのを待つ方法について説明します。このテクニックは、複数のタスクを並行して実行し、すべてのタスクが完了するまでメインスレッドの実行をブロックする場合に役立ちます。
Pythonのthreading
モジュールを使用してスレッドを作成し、それらを開始します。次に、各スレッドのjoin()
メソッドを呼び出して、そのスレッドが終了するのを待ちます。
以下に、このプロセスを示すコードスニペットを示します。
from threading import Thread
# スレッドで実行する関数を定義します。
def my_function(args):
# ここに処理を書きます。
pass
# スレッドを作成します。
t1 = Thread(target=my_function, args=(arg1,))
t2 = Thread(target=my_function, args=(arg2,))
t3 = Thread(target=my_function, args=(arg3,))
# スレッドを開始します。
t1.start()
t2.start()
t3.start()
# すべてのスレッドが終了するのを待ちます。
t1.join()
t2.join()
t3.join()
print("All threads are done.")
このコードでは、my_function
を引数arg1
、arg2
、arg3
で3回呼び出します。これらの関数呼び出しはそれぞれ別々のスレッドで行われ、join()
メソッドによってすべてのスレッドが終了するのを待ちます。
この方法を使用すると、Pythonプログラムで複数のタスクを効率的に並行して実行できます。ただし、スレッドの使用は複雑さを増す可能性があるため、適切なエラーハンドリングと同期を確保することが重要です。