python threading停止线程的接口
时间: 2023-08-24 20:07:05 浏览: 95
Python threading模块提供了两种方法停止线程。
1. 使用标志位
在线程中使用一个标志位,当标志位为True时,线程执行,当标志位为False时,线程退出。可以通过修改标志位的值来控制线程的启停。
示例代码:
```python
import threading
import time
class MyThread(threading.Thread):
def __init__(self):
super(MyThread, self).__init__()
self.flag = True
def run(self):
while self.flag:
print("Thread is running...")
time.sleep(1)
print("Thread stopped.")
def stop(self):
self.flag = False
# 创建线程
t = MyThread()
# 启动线程
t.start()
# 停止线程
t.stop()
```
2. 使用Thread类提供的方法
Thread类提供了stop()方法用于停止线程,但是这个方法已经被弃用,因为它可能会导致线程死锁或者资源泄漏等问题。如果要使用这个方法,需要自己处理这些问题。
示例代码:
```python
import threading
import time
class MyThread(threading.Thread):
def __init__(self):
super(MyThread, self).__init__()
def run(self):
while True:
print("Thread is running...")
time.sleep(1)
# 创建线程
t = MyThread()
# 启动线程
t.start()
# 停止线程
t.stop()
```
建议使用第一种方法来停止线程,因为它更安全可靠。
阅读全文