python并发编程实战(一):python并发编程简介

1|0学习教程地址


这篇教程是:b站up主蚂蚁学Python的视频教程的笔记,原视频地址:【2021最新版】Python 并发编程实战,用多线程、多进程、多协程加速程序运行

2|0为什么要引入并发编程


场景1:一个网络爬虫,按顺序爬取花了1个小时,采用并发下载减少到20分钟!
场景2:一个APP应用,优化前每次打开页面需要3s,采用异步并发提升到每次200毫秒;

  • 引入并发,是为了提升程序运行的速度
  • 学习并掌握并发编程,是高级别+高薪资程序员的必备能力

3|0有哪些程序提速的方法



单线程串行:有一个线程,开始执行以后,CPU先执行,然后进行IO(数据读取和写入),在IO期间,CPU是不做什么事情的,IO完成后,CPU继续开始运算,然后进行下一次IO,整体的时间有些浪费,因为在IO期间,CPU是等待的状态
多线程并发:CPU开始执行,如果遇到IO,它会切换到另一个task进行执行,当IO完成之后,会通知CPU进行下一步的处理。电脑中的CPU和IO是可以同时并行进行的,IO的执行,比如读取内存、磁盘、网络,它的过程中是不需要CPU的参与的,这样CPU是可以释放出来,来执行其他task,实现并发的加速,但这种原理上,还是一个CPU进行运行的
多CPU并行:当前我们电脑都是多核CPU,所以很自然的,我们可以实现多个CPU多条线,同时真正的并行执行进行加速
多机器并行:当前进入大数据时代,很多程序的运行都是可以用很多机器并行来进行运算,每个机器上有很多CPU,每个CPU上也可以进行并发的执行

4|0python对并发编程的支持


  • 多线程:threading,利用CPU和IO同时执行的原理,让CPU不会干巴巴等待IO完成

  • 多进程:multiprocessing,利用多核CPU的能力,真正的并行执行任务

  • 异步IO:asyncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行

  • 使用Lock对资源加锁,防止冲突访问

  • 使用Queue实现不同线程/进程之间的数据通信,实现生产者—消费者模式

  • 使用线程池Pool/进程池Pool,简化线程/进程的任务提交、等待结束、获取结果

  • 使用subprocess启动外部程序的进程,并进行输入/输出交互


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/16436869.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-07-02 显性等待的另一种写法
2018-07-02 selenium定位多个嵌套iframe
2017-07-02 《Advanced Bash-scripting Guide》学习(十一):shift的用法
2017-07-02 《Advanced Bash-scripting Guide》学习(十):利用whois查询域名信息
点击右上角即可分享
微信分享提示