python 关闭线程
时间: 2023-09-09 11:10:29 浏览: 98
要关闭线程,可以使用 `threading.Thread` 的 `stop()` 方法。但是这种方法是不推荐使用的,因为它可能会导致线程在非预期的地方停止,从而引发不稳定的情况。
更好的方法是,让线程自己检查某个标志位,当检测到该标志位时,线程自己主动退出。具体实现可以参考以下代码:
```python
import threading
import time
class MyThread(threading.Thread):
def __init__(self):
super().__init__()
self._stop_event = threading.Event()
def stop(self):
self._stop_event.set()
def run(self):
while not self._stop_event.is_set():
print("Thread is running...")
time.sleep(1)
print("Thread stopped.")
# 创建线程并启动
t = MyThread()
t.start()
# 稍等一段时间后,手动停止线程
time.sleep(5)
t.stop()
```
在上述代码中,我们创建了一个名为 `MyThread` 的子类,其中包含一个 `_stop_event` 标志位。在 `run()` 方法中,线程会不断检查该标志位是否被设置,如果被设置,则主动退出循环,并打印出 "Thread stopped." 的提示信息。
在主程序中,我们创建了一个 `MyThread` 对象 `t`,并启动了该线程。然后等待 5 秒钟后,手动调用 `t.stop()` 方法,以停止线程的运行。
阅读全文