Pythonで子スレッドの作成および停止を行うには
Python では、スレッドモジュールを使用してサブスレッドの作成と停止を行うことができます。
サブスレッドを作成する手順は次のとおりです。
- スレッド処理
- スレッドのインポート
- 子スレッドで実行する処理を関数で定義する。
- スレッド
- スタート
以下のコード例を参照のこと。
import threading
# 定义子线程的执行内容
def my_thread_func(arg1, arg2):
# 执行任务...
pass
# 创建子线程
my_thread = threading.Thread(target=my_thread_func, args=(arg1, arg2))
# 启动子线程
my_thread.start()
子スレッドを停止したい場合は、threading.Event とその is_set() メソッドを使用できます。手順は次のとおりです。
- threading.Event()
- 設定されているか
- 集合(set)
- イベント
- まさに
たとえば、そのコードはこのようになります。
import threading
# 定义子线程的执行内容
def my_thread_func(stop_event):
while not stop_event.is_set():
# 执行任务...
pass
# 创建Event对象
stop_event = threading.Event()
# 创建子线程
my_thread = threading.Thread(target=my_thread_func, args=(stop_event,))
# 启动子线程
my_thread.start()
# 停止子线程
stop_event.set()
サブスレッドが実行完了するまでメインスレッドが待つためには、メインスレッドでサブスレッドのjoin()メソッドを呼び出す必要があることに注意してください。コードサンプルを以下に示します。
# 创建子线程
my_thread = threading.Thread(target=my_thread_func, args=(stop_event,))
# 启动子线程
my_thread.start()
# 停止子线程
stop_event.set()
# 等待子线程执行完毕
my_thread.join()
# 继续执行主线程的其他任务...
これにより、子スレッドが完了してから主スレッドの処理が実行されることが保証されます。