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


    学习教程地址

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

    为什么要引入并发编程

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

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

    有哪些程序提速的方法


    单线程串行:有一个线程,开始执行以后,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上也可以进行并发的执行

    python对并发编程的支持

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

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

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

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

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

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

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

  • 相关阅读:
    Eclipse无法导入一些相关类的方法,出现Multiple markers at this line
    查看共享命令
    eclipse历史版本的下载地址
    MyEclipse的快捷键
    Hibernate的隔离级别
    eclipse插件下载地址
    UML类图几种关系的总结
    Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace
    回滚段的学习
    Oracle 字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/my_captain/p/16436869.html
Copyright © 2020-2023  润新知