文章目录

  • ​​资料链接​​
  • ​​我的笔记​​
  • ​​python并发编程简介​​
  • ​​怎样选择多线程、多进程、多协程​​
  • ​​python速度慢的罪魁祸首GIL​​
  • ​​使用多线程,python爬虫加速10倍​​
  • ​​python实现生产者消费者爬虫​​
  • ​​python线程安全问题以及解决方案​​
  • ​​Python的线程池​​
  • ​​线程池在web服务中实现加速​​
  • ​​多进程加速程序的运行​​
  • ​​flask使用多进程​​
  • ​​异步io实现并发​​
  • ​​信号量控制爬虫并发​​

资料链接

b站:https://www.bilibili.com/video/BV1bK411A7tV/?spm_id_from=333.788.recommend_more_video.1

我的笔记

python并发编程简介

python多线程、多进程进阶_开发语言

python多线程、多进程进阶_开发语言_02

单线程串行:cpu运算和io操作接替执行,io的时候cpu就不能工作,cpu是有空闲时间的。

多线程并发:也是一个cpu,但是没有前后关系的io和cpu操作可以捉对并行了,提升了效率,io的时候不占用cpu的运行时间了。

多cpu并行:是多个cpu的场景,真正的多个cpu在并行执行,多个io在并行。

多机器并行:大数据时代的产物,是多个机器,每个机器上多个cpu并行。

python多线程、多进程进阶_多进程_03

怎样选择多线程、多进程、多协程

python多线程、多进程进阶_python_04

python多线程、多进程进阶_多进程_05


python多线程、多进程进阶_python_06

python多线程、多进程进阶_开发语言_07

python速度慢的罪魁祸首GIL

python多线程、多进程进阶_多进程_08


python多线程、多进程进阶_开发语言_09


python多线程、多进程进阶_python_10


暗示了对于java和c++来说,多线程意味着多核心同时执行。

python多线程、多进程进阶_多线程_11


python多线程、多进程进阶_多线程_12


多线程并不是真的多线程,io密集型是ok的,cpu密集型就得多进程了。

使用多线程,python爬虫加速10倍

python多线程、多进程进阶_多线程_13


python多线程、多进程进阶_多线程_14

python实现生产者消费者爬虫

python多线程、多进程进阶_开发语言_15

python多线程、多进程进阶_python_16


python多线程、多进程进阶_python_17


demo代码:

python多线程、多进程进阶_多进程_18


python多线程、多进程进阶_多线程_19

python线程安全问题以及解决方案

python多线程、多进程进阶_开发语言_20


python多线程、多进程进阶_python_21


以取钱场景为例:定义一个全局的lock,然后锁住并发部分的代码。

python多线程、多进程进阶_开发语言_22

Python的线程池

python多线程、多进程进阶_开发语言_23


python多线程、多进程进阶_python_24


python多线程、多进程进阶_python_25


代码案例:

python多线程、多进程进阶_开发语言_26


python多线程、多进程进阶_开发语言_27


推荐使用:submit和as_completed 的组合方法。

线程池在web服务中实现加速

python多线程、多进程进阶_多线程_28


python多线程、多进程进阶_多进程_29


demo演示:flask

python多线程、多进程进阶_python_30


模拟:

python多线程、多进程进阶_python_31


线程池改造:

python多线程、多进程进阶_开发语言_32

python多线程、多进程进阶_python_33


时间对比测试:----------->并发加速了访问的接口

python多线程、多进程进阶_开发语言_34

多进程加速程序的运行

python多线程、多进程进阶_多线程_35


python多线程、多进程进阶_开发语言_36


api几乎是一致的。

python多线程、多进程进阶_python_37

三种计算的测试:

python多线程、多进程进阶_python_38


python多线程、多进程进阶_python_39

测试结果:

python多线程、多进程进阶_多线程_40

flask使用多进程

python多线程、多进程进阶_开发语言_41

多进程的注意事项:用的对象,方法,必须都已经声明完了。必须在main函数里面。

异步io实现并发

python多线程、多进程进阶_开发语言_42


python多线程、多进程进阶_python_43


loop的里面简单理解就是while-true。

注意关键字成对:async和await

python多线程、多进程进阶_多线程_44


python多线程、多进程进阶_python_45

信号量控制爬虫并发

python多线程、多进程进阶_开发语言_46


改造过程:

python多线程、多进程进阶_多线程_47