返回顶部
首页 > 资讯 > 后端开发 > Python >python多线程----------主线程,子线程,任务讲解----拿下就是胜利
  • 866
分享到

python多线程----------主线程,子线程,任务讲解----拿下就是胜利

开发语言python 2023-09-05 16:09:14 866人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这一篇博客主要介绍给分不清楚主线程.子线程的小可爱们 在之前的一篇博客中我简单的介绍了并发,并行 并发:是在时段的完成多个任务 ,但是每个时间点只有一个任务运行 而多线程就是这一个原理 非守护线程 代码: from threading im

这一篇博客主要介绍给分不清楚主线程.子线程的小可爱们

在之前的一篇博客中我简单的介绍了并发,并行

并发:是在时段的完成多个任务 ,但是每个时间点只有一个任务运行

多线程就是这一个原理

非守护线程

代码:

from threading import Threadimport requestsfrom selenium import WEBdriverimport time# 并发 cpu数量小于执行任务数量 比如一个cpu运行多个进程# 并行 cpu数量大于任务数量, 比如4个cpu运行4个进程def sing():    # 子线程    for i in range(5):        print("我是打打怪")def dance():    # 任务    # for i in range(5):    #     print("我是小小怪")    #     time.sleep(1)    print("11")    print("22")    time.sleep(1)    print("33")"""主线程"""if __name__ == '__main__':    a = time.time()    # 创建5个子线程,每个子线程都发送一次dance()任务,非守护线程不会等待主线程运行结束而结束,而守护停止是在主线程和非守护运行完成后停止    for i in range(5):        t1 = Thread(target=dance)        # 线程创建按完成        t1.start()    b = time.time()    print(b - a)

结果:

可以看出主线程执行完成,但是子线程还在运行,这就是非守护线程(子线程),

非守护线程:就是主线程运行结束,还在运行,知道自己调用的函数运行完成(任务运行完成)

对于非守护线程,就算主线程执行完了,也要等非守护进程完成才能退出

守护线程

代码:

from threading import Threadimport requestsfrom selenium import webdriverimport time# 并发 cpu数量小于执行任务数量 比如一个cpu运行多个进程# 并行 cpu数量大于任务数量, 比如4个cpu运行4个进程def sing():    # 子线程    for i in range(5):        print("我是打打怪")        time.sleep(5)        print("子线程(守护)运行")def dance():    # 任务    # for i in range(5):    #     print("我是小小怪")    #     time.sleep(1)    print("11")    time.sleep(1)    print("子线程(非守护)运行")"""主线程"""if __name__ == '__main__':    a = time.time()    # 创建5个子线程,每个子线程都发送一次dance()任务,非守护线程不会等待主线程运行结束而结束,而守护停止是在主线程和非守护运行完成后停止    for i in range(5):        t1 = Thread(target=dance)        # 线程创建按完成        t1.start()    for i in range(5):        t2 = Thread(target=sing)        t2.setDaemon(True)        t2.start()    b = time.time()    print(b - a)

结果:

守护线程:要么自己运行在主线程或非守护线程前结束,要么等主线程或非守护线程结束,然后自己被强制行结束

子线程其实就是并发(同一时间段内执行多个操作)的任务;但本人理解为主线程里面有子线程,通过子线程来执行任务,任务就是我们定义的函数

setDaemon(Ture) :设置子进程为守护进程 ==  主进程关闭,子进程随即关闭【当你觉得一些线程不重要的时候,可以设置守护线程。】

 Join() :设置阻塞 == 该子进程执行完才能执行主线程【当一些任务要先于另一些任务完成的时候,可以用】

这里就不介绍了

总结:这里是给分不清楚主线程和子线程的小可爱的,

来源地址:https://blog.csdn.net/m0_69984273/article/details/131302016

--结束END--

本文标题: python多线程----------主线程,子线程,任务讲解----拿下就是胜利

本文链接: https://lsjlt.com/news/395687.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python多线程----------主线程,子线程,任务讲解----拿下就是胜利
    这一篇博客主要介绍给分不清楚主线程.子线程的小可爱们 在之前的一篇博客中我简单的介绍了并发,并行 并发:是在时段的完成多个任务 ,但是每个时间点只有一个任务运行 而多线程就是这一个原理 非守护线程 代码: from threading im...
    99+
    2023-09-05
    开发语言 python
  • python线程及多线程实例讲解
    进程和线程一、进程进程是程序的分配资源的最小单元;一个程序可以有多个进程,但只有一个主进程;进程由程序、数据集、控制器三部分组成。二、线程线程是程序最小的执行单元;一个进程可以有多个线程,但是只有一个主线程;线程切换分为两种:一种是I/O切...
    99+
    2023-01-31
    线程 多线程 实例
  • Python主线程销毁子线程过程是怎样的
    Python主线程销毁子线程过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在处理完成后,Python主线程将销毁线程,其实Python主线程的销毁与...
    99+
    2023-06-17
  • Python主线程与子线程的区别是什么
    Python主线程与子线程的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python子线程在创建自身的线程状态对象后,会通过_PyGILState_NoteTh...
    99+
    2023-06-17
  • 子线程任务发生异常时主线程事务回滚示例过程
    目录一、提出问题二、主线程与子线程三、线程池四、异常的捕获五、事务的回滚一、提出问题 最近有一位朋友问了我这样一个问题,问题的截图如下: 这个问题问的相对比较笼统,我来稍微详细的描...
    99+
    2024-04-02
  • Java子线程任务异常和主线程事务回滚问题怎么解决
    这篇文章主要介绍了Java子线程任务异常和主线程事务回滚问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java子线程任务异常和主线程事务回滚问题怎么解决文章都会有所收获,下面我们一起来看看吧。一、提...
    99+
    2023-06-30
  • Python 多线程处理任务实例
    目录美餐每天发一个用Excel汇总的就餐数据,我们把它导入到数据库后,行政办公服务用它和公司内的就餐数据进行比对查重。 初始实现是单线程,和import_records去掉多线程后的...
    99+
    2024-04-02
  • 详解Java子线程异常时主线程事务如何回滚
    一、提出问题 最近有一位朋友问了我这样一个问题,问题的截图如下: 这个问题问的相对比较笼统,我来稍微详细的描述下:主线程向线程池提交了一个任务,如果执行这个任务过程中发生了异常,...
    99+
    2024-04-02
  • Java中怎么利用多线程处理任务
    这篇文章将为大家详细讲解有关Java中怎么利用多线程处理任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.直接传递一批任务给到多线程处理方法,返回处理结果代码如下: publi...
    99+
    2023-06-17
  • Python多线程使用方法详细讲解
    目录一、简介二、线程模块三、使用 threading 模块创建线程四、线程同步五、线程优先级队列( Queue)1、queue队列2、队列queue公共方法3、其他六、Queue详细...
    99+
    2024-04-02
  • 利用Python多线程实现图片下载器
    目录导语开发工具环境搭建原理简介效果展示导语 之前有很多小伙伴说想学习一下多线程图片下载器,虽然好像已经过去很久了,不过还是上来安排一波吧。至于题目为什么说是构建一个小型数据集,因为...
    99+
    2024-04-02
  • Python实现简单多线程任务队列
    最近我在用梯度下降算法绘制神经网络的数据时,遇到了一些算法性能的问题。梯度下降算法的代码如下(伪代码): def gradient_descent(): # the gradient descent...
    99+
    2022-06-04
    队列 多线程 简单
  • Python如何实现多线程处理任务
    小编给大家分享一下Python如何实现多线程处理任务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!读取Excel数据 —> 发送到行政服务接口安全起见线上操作放在了晚上进行。运行时发现每条数据导入消耗1s多,晚上十点...
    99+
    2023-06-25
  • for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式
    for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行 方式一 使用 CountDownLatch 在 Java 中,您可以使用 CountDownLatch 来实现主线程等待子线程执行完成的功能。CountDownLatc...
    99+
    2023-08-23
    多线程 线程池 线程调用顺序
  • python多线程对多核cpu的利用解析
    目录引言没有运行这段代码前cpu状态运行之后的状态运行代码结果python线程的执行流程理解遇到IO也会释放GIL引言 我们经常听到"因为GIL的存在,python的多线程...
    99+
    2024-04-02
  • C#多线程之任务的用法详解
    目录一.启动任务1.使用线程池的任务2.同步任务3.使用单独线程的任务二.任务的结果————Future三.连续的任务四.任务的层次结...
    99+
    2024-04-02
  • python 多线程实现多任务的方法示例
    目录1 多线程实现多任务1.1 什么是线程?1.2 一个程序实现多任务的方法1.3 多线程的创建方式1.3.1 创建threading.Thread对象1.3.2 继承threading...
    99+
    2022-06-02
    python 多线程实现多任务 python 多线程多任务
  • python多线程测试接口性能,就是这么简单
    除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试。下面,使用这几个模块,对一个查询接口做性能测试:requests:发送http请求json:返回的字符串转换成json格式threading:多线程time:...
    99+
    2023-06-01
  • python 如何用map()函数创建多线程任务
    对于多线程的使用,我们经常是用thread来创建,比较繁琐. 在Python中,可以使用map函数简化代码。map可以实现多任务的并发 简单说明map()实现多线程原理: tas...
    99+
    2024-04-02
  • C#多线程开发之任务并行库详解
    目录前言任务并行库 一、创建任务二、使用任务执行基本操作三、处理任务中的异常总结前言 之前学习了线程池,知道了它有很多好处。 使用线程池可以使我们在减少并行度花销时节省操作系统资源。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作