python 如何关闭thread
时间: 2023-06-29 11:08:16 浏览: 43
在Python中,可以使用`threading.Thread`来创建线程。要关闭线程,可以使用`Thread`对象的`_stop()`方法,但是这个方法并不是很安全,因为它可能会导致一些资源没有被释放,从而导致内存泄漏等问题。更好的做法是让线程自己退出,而不是强制终止它。
以下是一个示例代码,展示如何关闭线程:
```python
import threading
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():
# do some work here
pass
my_thread = MyThread()
my_thread.start()
# 等待一段时间后停止线程
my_thread.stop()
my_thread.join()
```
在这个示例中,我们创建了一个继承自`threading.Thread`的自定义线程`MyThread`,并在其中添加了`stop()`方法来关闭线程。在`run()`方法中,我们使用`_stop_event`来判断线程是否需要退出,如果需要退出,则`is_set()`方法会返回`True`,这时线程就会自己退出。在主线程中,我们调用了`stop()`方法来停止线程,并使用`join()`方法等待线程结束。