Skip to the content.

本文学习python并发编程与多线程

img.png

img_1.png

img_2.png

1. Python并发编程

如果想要充分利用CPU多核资源,做到多并发,需要Python多进程,只有Python多进程才能利用CPU多核资源,做到真正的多并发。 python多进程库:multiprocessing

2. python多线程

Python有一个全局解释器锁(GIL,全称Global Interpreter Lock),用来保证同一时刻只有一个线程在使用CPU资源;当出现IO阻塞时,解锁,释放CPU资源, 其他线程才能申请到锁,使用CPU资源。因此Python多线程无法使用CPU多核资源。 python多线程编程使用的模块库有 thread,python内置,比较底层,不推荐使用 threading,python内置,使用较多 multiprocessing.dummy, Python内置,可以方便的将代码在多线程和多进程之间进行切换。

3. python多线程和多进程的应用场景

Python多线程和多进程有自己的应用场景: python多线程,是利用了单个cpu的资源,适用于压力不在cpu,而在网络/io方面的应用,比如文件读写、网络数据传输等。

Python多线程适用于I/O密集型场景,如解决网络IO、磁盘IO阻塞问题,例如文件读写、网络数据传输等; 而Python多进程更适用于计算密集型场景,多并发,大量计算任务等。 注意:Python多线程和多进程在平时开发过程中,需要注意使用,如果使用Python多线程方式处理计算密集型任务,它比实际单进程处理性能还要慢!所以要注意,看场景类型。

4. 协程

5. 使用场景