打卡第1天:Python的并发编程--简介
1、几种并发方式
a、多进程;b、多线程;c、远程分布式并发;d、协程(伪线程或微线程或异步I/O)
2、各方式常用模块
2.1、多进程:
multiprocessing、threading
2.2、多线程:
Thread、threading
2.3、远程分布式:
a、测试人员可以了解经典测试工具ngrinder,专门用于多主机协同并发测试。b、开发人员
可以了解Python的分布式框架,后续打卡将以Celery为例。
2.4、协程:
即单线程-异步I/O。在greenlet下衍生出了eventlet、gevent、concurence几个模块,后续将
进行打卡详谈。
3、各种并发性能比较(分布式并发未进行比较验证,但是由于分布式并发中协调控制存在较大开销,性能不一定好):
3.1、计算密集型:
多进程 > 协程 > 多线程程
备注:在计算密集型的业务中CPU负载较高,进行适当的多进程并发(跟电脑有关)有利于性能
提升;协程本身就是单线程,在计算密集型业务中并发没意义;对多线程而言,一个进程下起多
个线程不利于计算型的业务。
3.2、I/O密集型:
协程 > 多线程 > 多进程
备注:在I/O密集的操作中,由于多进程开销太大,因此性能最差;多线程由于开销较小,相对
多进程性能有明显的优势,但是相比协程这个简单的i/O复路来说又有所不及;这边亲测了1+1
的500并发,协程反应速度差不多是线程的2倍,所以这里在不考虑编程复杂的情况下,专注
I/O密集业务性能情况下,推荐协程。
4、总结:
这里只简单说明了个3中并发单独存在时的性能情况,开发人员可以根据实际情况进行组合,可
以进一步提高并发的性能。
明天打卡Thread、threading两个模块。(此次打卡累计70工作日,主要专注于对Python相关知
识的学习回顾与总结)