python多线程中:如何关闭线程?

这篇具有很好参考价值的文章主要介绍了python多线程中:如何关闭线程?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 threading.Event 对象关闭子线程

Event 机制工作原理:

Event 是线程间通信的一种方式。其作用相当于1个全局flag,主线程通过控制 event 对象状态,来协调子线程步调。

使用方式

  • 主线程创建 event 对象,并将其做为参数传给子线程
  • 主线程可以用set()方法将event 对象置为true, 用clear()方法将其置为false。
  • 子线程循环体内,检查 event 对象的值,如果为 True, 则退出循环。
  • 子线程,可使用 event.wait() 将阻塞当前子进程,直至event 对象被置为true.

event 类的常用方法

  • set() 设置 True
  • clear() 设置 False,
  • wait() 使进程等待,直到flag被改为true.
  • is_set() 查询 event 对象,如被设置为真,则返回True, 否则返回False.
class StartDecisionTread(threading.Thread):
    def __init__(self, ins):
        super(StartDecisionTread, self).__init__()
        self.ins = ins
        self.stop_event = threading.Event()

    def run(self):
        while not self.stop_event.is_set():
            print(1)
            model_file_path = rf'1.db'
            if not os.path.exists(model_file_path): 
                self.stop_event.set()

#Python学习交流群:711312441
thread1 = StartDecisionTread(1)
thread1.start()

子线程执行其任务循环,它每次循环都会检查event对象,该对象保持 false,就不会触发线程停止。

当主线程调用event对象的 set() 方法后,在子线程循环体内,调用event对象is_set()方法,发现event 对象为True后, 立即退出任务循环,结束运行。文章来源地址https://www.toymoban.com/news/detail-839371.html

到了这里,关于python多线程中:如何关闭线程?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 多线程 Event

    Event 是一个事务处理的机制,用于通知多个异步任务某个事件已经发生了。比如在交通红绿灯中多辆在行驶中的汽车可以表示成程序中的多个异步任务,红绿灯的亮起可以表示成一个通知,红灯通知这个汽车的行驶任务必须停止了,绿灯通知这个汽车的行驶任务可以继续驾驶

    2024年02月08日
    浏览(32)
  • Python多线程之_thread与threading模块

    Python多线程之_thread与threading模块 在Python程序中,多线程的应用程序会创建一个函数,来执行需要重复执行多次的程序代码,然后创建一个线程执行该函数。一个线程是一个应用程序单元,用于在后台并行执行多个耗时的动作。 在多线程的应用程序中,每一个线程的执行时间

    2024年02月04日
    浏览(38)
  • Python线程(thread)

    Python实用教程_spiritx的博客-CSDN博客 在Python3中,通过threading模块提供线程的功能。原来的thread模块已废弃。但是threading模块中有个Thread类(大写的T,类名),是模块中最主要的线程类,一定要分清楚了,千万不要搞混了。 threading模块提供了一些比较实用的方法或者属性,例

    2024年02月09日
    浏览(49)
  • 【python | Thread】多线程记录

    every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?type=blog python 多线程记录 说明: 由于GIL锁的存,并非真正意义上的多线程 说明: 重写Thread类里面的run方法 ,里面写入你需要执行的代码,之后使用start()方法就可以调用run [1] https://zhuanlan.zhihu.com/p/91601

    2024年02月03日
    浏览(45)
  • 【C++】多线程(thread)使用详解

    多线程(multithreading),是指在软件或者硬件上实现多个线程并发执行的技术。具有多核CPU的支持的计算机能够真正在同一时间执行多个程序片段,进而提升程序的处理性能。在一个程序中,这些独立运行的程序片段被称为“ 线程 ”(Thread),利用其编程的概念就叫作“多线

    2024年02月14日
    浏览(42)
  • 【Python】线程threading与GUI窗口tkinter结合应用

    Python的threading模块是一个强大的工具,它提供了高级别的线程编程接口。通过这个模块,Python程序员可以在应用程序中实现多线程并发执行。 线程(Thread)是程序执行流的最小单元,被包涵在进程之中,是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不

    2024年01月19日
    浏览(52)
  • Java多线程---线程的创建(Thread类的基本使用)

    本文主要介绍Java多线程的相关知识, Thread的创建, 常用方法的介绍和使用, 线程状态等. 文章目录 前言 一. 线程和Thread类 1. 线程和Thread类 1.1 Thread类的构造方法 1.2 启用线程的相关方法 2. 创建第一个Java多线程程序 3. 使用Runnable对象创建线程 4. 使用内部类创建线程 5. 使用Lamba

    2024年02月03日
    浏览(40)
  • 多线程系列(二) -Thread类使用详解

    在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。 其中 java.lang.Thread 是 Java 实现多线程编程最核心的类,学习 Thread 类中的方法,是学习多线程的第一步。 下面我们就一起来看看,创

    2024年02月19日
    浏览(45)
  • 【神行百里】python开启多线程(threading)与多进程(multiprocessing)运行

      由于处理数据过多,程序运行很慢,就学习了一下python开启多线程与多进程的方法,虽然最后也没用上,但还是记录总结一下,以备不时之需。   传送门:进程与线程认识,进程与线程通俗理解   简言之, 进程为资源分配的最小单元,线程为程序执行的最小单元

    2024年02月02日
    浏览(43)
  • Python多线程Thread——生产者消费者模型 python队列与多线程——生产者消费者模型

    下面面向对象的角度看线程 那么你可以试试看能不能用面向对象的方法实现生产者消费者模型吧。

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包