python如何结束threading

原创
ithorizon 7个月前 (09-30) 阅读数 51 #Python

Python中Threading的结束

Python的Threading模块是Python标准库中的一个模块,用于支持多线程编程,结束一个线程可以通过多种方法来实现,以下是其中的一些方法。

方法一:使用Thread对象的stop()方法

Python的Thread类提供了一个stop()方法,可以用来停止线程,这个方法会抛出一个ThreadStop异常,如果线程没有捕获该异常,那么线程就会立即停止。

import threading
import time
def do_something():
    while True:
        print("Doing something...")
        time.sleep(1)
        try:
            thread.stop()
        except threading.ThreadStop:
            break
thread = threading.Thread(target=do_something)
thread.start()
thread.stop()

在这个例子中,我们创建了一个无限循环的线程,然后在主线程中调用thread.stop()来停止它,当thread.stop()被调用时,它会抛出一个ThreadStop异常,从而结束无限循环,使线程停止。

方法二:使用Thread对象的join()方法

另一个停止线程的方法是使用Thread对象的join()方法,这个方法会阻塞主线程,直到被调用的线程结束,可以通过在主线程中调用thread.join()来等待线程结束。

import threading
import time
def do_something():
    while True:
        print("Doing something...")
        time.sleep(1)
        if threading.current_thread().name == "MainThread":
            break
thread = threading.Thread(target=do_something)
thread.start()
thread.join()

在这个例子中,我们创建了一个子线程,并在主线程中调用thread.join()来等待它结束,当子线程结束时,thread.join()会返回,主线程会继续执行。



热门