码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python中Thread实现多线程任务


    目录

    多线程概括:

    使用 Thread 模块创建线程

    如果不使用多线程:


    多线程概括:

    多线程是一种并发执行的编程方式,允许程序同时执行多个独立的线程,每个线程在程序中运行独立的任务。每个线程都是程序的基本执行单元,拥有自己的执行序列、局部变量和执行上下文。

    在多线程编程中,多个线程可以同时执行,而不是按照严格的顺序进行。这使得程序能够更有效地利用多核处理器,提高整体性能。多线程通常用于执行并行计算、提高响应性以及处理异步任务。

    每个线程在执行时都可以独立执行不同的代码段,但它们共享进程的资源,如内存空间和文件句柄。因此,需要谨慎处理多线程之间的数据共享和同步问题,以避免竞态条件和数据一致性问题。多线程编程可以通过操作系统的线程调度器或编程语言提供的线程库来实现。

    使用 Thread 模块创建线程

    Python 的 threading 模块提供了创建和管理线程的工具。通过导入 threading 模块,你可以使用 Thread 类创建新线程,例如:

    1. from threading import Thread
    2. from time import sleep, ctime
    3. class MyClass(object):
    4. def func(self,name,sec):
    5. print(name,':开始', '时间:', ctime())
    6. sleep(sec)
    7. print(name,':结束', '时间:', ctime())
    8. def main():
    9. # 创建 Thread 实例
    10. t1 = Thread(target=MyClass().func, args=(1, 1))
    11. t2 = Thread(target=MyClass().func, args=(2, 2))
    12. # 启动线程运行
    13. t1.start()
    14. t2.start()
    15. # 等待所有线程执行完毕
    16. t1.join() # join() 等待线程终止,要不然一直挂起
    17. t2.join()
    18. if __name__=="__main__":
    19. main()

    这表明两个线程是同时执行的,线程 1 在休眠 1 秒后结束,线程 2 在休眠 2 秒后结束。多线程的优势在于能够并行执行任务,提高程序的执行效率。在这个例子中,由于 sleep 模拟了耗时的任务,所以两个线程可以在几乎同时开始,但由于休眠不同的时间,它们的结束时间有所不同。 

    如果不使用多线程:

    1. from time import sleep, ctime
    2. def func(name,sec):
    3. print(name,':开始', '时间:', ctime())
    4. sleep(sec)
    5. print(name,':结束', '时间:', ctime())
    6. if __name__=="__main__":
    7. func(1,1)
    8. func(2,2)

    可以看到程序1结束之后才执行程序2的,所有多线程可以并发执行,减少程序所用时间

     

     

  • 相关阅读:
    微信小程序-----通用获取输入框的值
    数据结构与算法2-时间空间复杂度分析
    LeetCode 169. 多数元素
    飞书API 2-2:如何使用 API 建多维表
    3线硬件SPI驱动 HX8347 TFT屏
    天锐绿盾电脑文件防泄密系统
    【每日一读】Unsupervised Differentiable Multi-aspect Network Embedding
    #【软件STM32cubeIDE下F103配置uart3+DMA收发+简单数据解析-基础样例】
    C++项目案例圆和点的关系 (涉及知识点:头文件定义类,cpp文件实现类,类和作用域,linux编译运行c++项目)
    Visual Studio导入Wiinform项目文件,引用显示黄色感叹号
  • 原文地址:https://blog.csdn.net/m0_74053536/article/details/134497095
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号