使用一个threading.Event对象来同步线程的停止。线程在执行execute_instruction函数时,会检查event对象是否被设置,如果被设置,则退出循环,从而停止线程。stop_thread_after_timeout函数将设置event对象,通知线程停止执行。
import threading
import time
def execute_instruction(event):
print("开始执行任务...")
while not event.is_set():
# 模拟指令执行的过程
print("任务正在执行...")
time.sleep(1)
def stop_thread_after_timeout(event):
print("停止线程执行...")
event.set() # 设置事件,通知线程停止执行
# 创建一个事件对象
event = threading.Event()
# 创建并启动线程
thread = threading.Thread(target=execute_instruction, args=(event,))
thread.start()
# 创建一个定时器,5秒后执行停止函数
timer = threading.Timer(5, stop_thread_after_timeout, args=(event,))
timer.start()