Pythonでは、threading
モジュールを使用してマルチスレッド処理を行うことができます。この記事では、Pythonで関数を新しいスレッドで実行する方法について説明します。
スレッドの作成と開始
Pythonで新しいスレッドを作成し、関数をそのスレッドで実行するには、以下の手順を実行します:
threading.Thread
クラスのインスタンスを作成します。target
引数に関数の名前を指定します。start()
関数を呼び出します。
以下に具体的なコード例を示します:
import threading
def my_function():
# ここにスレッドで実行したい処理を書く
thread = threading.Thread(target=my_function)
thread.start()
このコードでは、my_function
という関数を新しいスレッドで実行しています。
スレッドの終了を待つ
スレッドが終了するのを待つには、join()
メソッドを使用します。以下に具体的なコード例を示します:
thread.join()
このコードは、thread
が終了するまで現在のスレッド(通常はメインスレッド)の実行をブロックします。
注意点
Pythonのスレッドは、グローバルインタプリタロック(GIL)のため、一度に1つのスレッドしかPythonコードを実行できません。そのため、計算処理を多く含むプログラムの場合、マルチスレッドよりもマルチプロセスの方がパフォーマンスが向上する可能性があります。
しかし、I/Oバウンドのタスク(ファイルの読み書きやネットワーク通信など)を同時に実行する場合、マルチスレッドは非常に有効です。
以上がPythonで関数を新しいスレッドで実行する基本的な方法です。これを基に、Pythonでのマルチスレッドプログラミングを進めてみてください。