并发编程(一)python并发编程简介

并发编程专栏系列博客

并发编程(一)python并发编程简介

并发编程(二)怎样选择多线程多进程和多协程

并发编程(三)Python编程慢的罪魁祸首。全局解释器锁GIL

并发编程(四)如何使用多线程,使用多线程对爬虫程序进行修改及比较

并发编程(五)python实现生产者消费者模式多线程爬虫

并发编程(六)线程安全问题以及lock解决方案

并发编程(七)好用的线程池ThreadPoolExecutor

并发编程(八)在web服务中使用线程池加速

并发编程(九)使用多进程multiprocessing加速程序运行

并发编程(十)在Flask服务中使用进程池加速

并发编程(十一)python异步IO实现并发编程

并发编程(十二)使用subprocess启动电脑任意程序(听歌、解压缩、自动下载等等)

 
 

1. 为什么要引入并发编程
  1. 场景一:网络爬虫、一个小时的任务并发20分钟完成。
  2. 场景二:APP应用,正常打开需要3秒,采用异步并发加载后提升到200毫秒
  3. 所以说,并发编程是为了提升程序运行的速度。
2. 有哪些程序提速的方法
  1. 多线程并发(threading)
  2. 多CPU并行(multiprocessing)
  3. 多机器并行(Hadoop、hive、spark)
3. python对并发编程的支持
  1. 多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不用等待 IO完成,而是借此机会执行其他task。
  2. 多进程:multiprocessing,利用多核CPU的能力,实现真正的并行执行任务
  3. 异步IO:asvncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行
  4. 其他模块
    1. 使用lock对资源加锁,防止冲突访问。
    2. 使用Queue实现不同线程、进程之间的数据通信,实现生产者-消费者模式。
    3. 使用线程池pool、进程池pool,简化线程、进程的任务提交、等待结果、获取结果。
    4. 使用subprocess启动外部程序的进程,并进行输入输出交互

猜你喜欢

转载自blog.csdn.net/qq_42546127/article/details/115031927