python终止 threading.Thread运行
时间: 2024-02-13 08:57:58 浏览: 171
Python多线程编程(三):threading.Thread类的重要函数和方法
可以使用`threading.Thread`类提供的`_stop()`方法来终止线程的运行。该方法会引发`SystemExit`异常,因此需要在线程的`run()`方法中进行异常处理。以下是一个例子:
```python
import threading
import time
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self._running = True
def run(self):
global n, lock
time.sleep(1)
while self._running:
if lock.acquire():
print(n, self.name)
n += 1
lock.release()
time.sleep(1)
def stop(self):
self._running = False
if __name__ == "__main__":
n = 1
ThreadList = []
lock = threading.Lock()
for i in range(1, 5):
t = MyThread()
ThreadList.append(t)
for t in ThreadList:
t.start()
time.sleep(5)
for t in ThreadList:
t.stop()
for t in ThreadList:
t.join()
```
在上面的例子中,我们创建了一个`MyThread`类,该类继承自`threading.Thread`类,并添加了一个`stop()`方法,该方法将`self._running`设置为`False`,以停止线程的运行。在`run()`方法中,我们使用一个`while`循环来不断地执行线程的任务,同时检查`self._running`的值,以决定是否继续执行任务。在主程序中,我们创建了4个`MyThread`对象,并启动它们的运行。然后,我们等待5秒钟,然后调用每个线程的`stop()`方法,以停止它们的运行。最后,我们等待每个线程完成,然后退出程序。
阅读全文