python3 kill thread
时间: 2023-07-29 11:10:32 浏览: 79
在 Python3 中,可以使用 `threading` 模块中的 `Thread` 类来创建线程。要杀死一个线程,可以使用 `Thread` 类的 `stop()` 方法,但是这个方法已经被废弃了,因为它可能会导致线程在不安全的状态下停止。更好的方法是使用一个标志变量来控制线程的运行,然后在需要停止线程时将其设置为 False。下面是一个示例代码:
```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)
if __name__ == "__main__":
t = MyThread()
t.start()
time.sleep(5)
t.stop()
t.join()
print("Thread stopped")
```
在这个例子中,我们创建了一个自定义的线程类 `MyThread`,并使用 `threading.Event` 来创建一个可以被设置的标志变量 `_stop_event`。在 `run()` 方法中,我们使用 `is_set()` 方法来检查标志变量的值,如果为 False 就退出循环。在 `stop()` 方法中,我们使用 `set()` 方法来设置标志变量为 True,从而停止线程的运行。在主程序中,我们创建了一个 `MyThread` 对象并启动线程。然后等待 5 秒钟,然后调用 `stop()` 方法来停止线程,并使用 `join()` 方法来等待线程结束。最后打印一条消息表示线程已经停止。
阅读全文