本节提纲
1、为什么要引入并发编程?
2、有哪些程序提速的方法
3、Python对并发编程的支持
为什么要引入并发编程?
场景1:一个网络爬虫,按顺序爬取花了1小时,采用并发下载减少到20分钟!
场景2:一个APP应用,优化前每次打开页面需要3秒,采用异步并发提升到每次200毫秒;
● 引入并发,就是为了提升程序运行速度
● 学习并掌握并发编程,是高级别+高薪资程序员的必备能力
有哪些程序提速的方法
Python对并发编程的支持
● 多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成
● 多进程:multiprocessing,利用多核CPU的能力,真正的并行执行任务
● 异步IO:asyncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行
● 使用Lock对资源进行加锁,防止冲突访问
● 使用Queue实现不同线程/进程之间的数据通信,实现生产者-消费者模式
● 使用线程池Pool/进程池Pool,简化线程/进程的任务提交、等待结果、获取结果
● 使用subprocess启动外部程序的进程,并进行输入输出交互