Pythonでは、threading
モジュールを用いてマルチスレッド処理を行うことができます。特に、クラスを用いてスレッドを管理する方法は、コードの可読性と再利用性を高めるために有用です。
スレッドの生成と開始
新しいスレッドは、threading.Thread
クラスをインスタンス化することで作成します。インスタンス化の際には、以下の引数に適切な値を入れます。
target
引数:スレッドで実行する関数args
引数:その関数の引数をタプルとして指定
import threading
# スレッドで実行する関数
def print_numbers():
for i in range(1, 6):
print(i)
# 新しいスレッドを生成して実行
thread = threading.Thread(target=print_numbers)
thread.start()
# メインスレッドの処理
for i in range(6, 11):
print(i)
スレッドクラスの拡張
threading.Thread
クラスを継承した新しいクラスを作成することで、スレッドの振る舞いをカスタマイズすることができます。具体的には、run
メソッドをオーバーライドします。
import threading
import time
class MyThread(threading.Thread):
def __init__(self):
super(MyThread, self).__init__()
def run(self):
for i in range(0,5):
print(i)
time.sleep(1)
# 新しいスレッドを生成して実行
thread = MyThread()
thread.start()
このように、Pythonのthreading
モジュールとクラスを組み合わせることで、効率的なマルチスレッド処理を実現することができます。