Pythonでは、マルチスレッドプログラミングを行う際に、特定のスレッドを一時停止させ、他のスレッドが終了するのを待つことがよくあります。この記事では、その方法について詳しく説明します。
スレッドの一時停止と待機
Pythonのthreading
モジュールを使用すると、スレッドを一時停止し、他のスレッドが終了するのを待つことができます。以下に、その基本的なコードを示します。
import threading
class DemoBot(threading.Thread):
def __init__(self):
super(DemoBot, self).__init__()
def run(self):
while True:
self.moveForward(100)
self.turnLeft(90)
このコードでは、DemoBot
クラスがthreading.Thread
クラスを継承しています。run
メソッドは、スレッドが開始されると自動的に呼び出され、ここにスレッドの主要な動作を記述します。
スレッドの終了を待つ
すべてのスレッドが終了するのを待つには、join
メソッドを使用します。以下にその使用例を示します。
t1 = threading.Thread(target=call_script, args=(scriptA + argumentsA))
t2 = threading.Thread(target=call_script, args=(scriptA + argumentsB))
t3 = threading.Thread(target=call_script, args=(scriptA + argumentsC))
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
このコードでは、3つのスレッドt1
、t2
、t3
を作成し、それぞれを開始しています。その後、join
メソッドを使用して、各スレッドが終了するのを待っています。
以上がPythonでスレッドを一時停止し、待機する基本的な方法です。これらの技術を利用することで、より複雑なマルチスレッドプログラムを効率的に制御することが可能になります。