Python thread 多线程的中断退出

初学者,查了百度,thread只有启动,没有stop,原因是为了避免资源占用,要优雅。。地退出。好像比较新的编程语言,都不支持直接stopthread。
我现有两个线程,一个a运行一些操作(不是循环while for这样的),一个b监控状态,b状态一不对,立刻中止a。由于a不是循环,那想中止,是不是只能每一步都插入event.set的检测然后exit()?有没有更好的中止方式?还是说有什么编写方法,能每一步都运行一下检测和退出?每行都插入也太不优雅了。
新ren,业余有兴趣鼓捣一下而已,可能很简单的问题,,恳请big佬指点,谢谢!

为了更好展示,以下附上代码

import threading
from time import sleep

def dongSomething():
    event.set()
    if not event.isSet():
        exit()
    print('1')#执行动作1,但是1~7动作不重复,不能使用while,for循环
    sleep(1)#执行动作1,但是1~7动作不重复,不能使用while,for循环
    if not event.isSet():#为了能及时接收监控发出的停止信号,并不再执行本动作程序,只能每个执行动作前添加监测。。很不优雅。。,实际不止7个不重复动作,逐一添加工作量也巨大
        exit()#如果接收到信号,退出,这里return也是可以的,两者一样?
    print('2')
    sleep(1)
    if not event.isSet():
        exit()
    print('3')
    sleep(1)
    if not event.isSet():
        exit()
    print('4')
    sleep(1)
    if not event.isSet():
        exit()
    print('5')
    sleep(1)
    if not event.isSet():
        exit()
    print('6')
    sleep(1)
    if not event.isSet():
        exit()
    print('7')
    sleep(1)

if __name__ == '__main__':
    event = threading.Event()
    for i in range(1,1000): #主线程需要循环运行。。。。
        print('第%d次主线程启动,前置准备动作'%i)#主线程前置准备动作
        sleep(3)  # 指代主线程前置准备动作
        thread_dongSomething = threading.Thread(target=dongSomething)
        thread_dongSomething.start() #启动动作程序,主线程往后则是监控状态
        # event.set() #启动动作程序,主线程往后则是监控状态
        print('dongSomething是执行线程,执行一会,主线程是监控程序') #动作程序运行中,主线程监控运行中
        sleep(5)#指代监控运行
        print('监控发现了异常,需要中断执行程序')#监控发现了异常,需要中断执行程序
        event.clear()#监控发出中止信号
        print('主线程还有后续动作,不能停止')
        sleep(3)
        print('主线程还有后续动作,不能停止')

你线程的函数执行完成就会自动释放了,不用自己去终止,你要终止,直接在函数里面加个判断,符合条件直接return就行了

中途想结束一个函数,直接写return就行了