python怎么停止多线程
时间: 2025-01-11 14:51:08 浏览: 4
安全停止Python中的多线程程序
为了实现安全地停止一个多线程的Python应用程序,可以采用事件标志来通知各个工作线程何时应该退出循环并结束执行。这通常涉及到threading.Event()
对象[^1]。
下面是一个简单的例子展示如何创建一个能够响应终止信号的工作线程:
import threading
import time
def worker(stop_event):
while not stop_event.is_set():
print("Working...")
time.sleep(1)
print('Worker received signal to stop.')
stop_event = threading.Event()
t = threading.Thread(target=worker, args=(stop_event,))
t.start()
try:
while True:
pass
except KeyboardInterrupt:
print("Stopping the worker thread.")
stop_event.set() # Signal the worker thread to exit.
t.join() # Wait until the actual termination of the worker thread.
print("Program finished.")
通过这种方式,在主线程接收到中断请求(比如来自用户的Ctrl+C命令),就可以设置事件旗标告知所有监听该事件的工作线程准备关闭。之后调用join()
方法等待这些线程完成它们的操作后再继续或退出整个应用。