如何让一个Python的脚本跑满多核的CPU

Python019

如何让一个Python的脚本跑满多核的CPU,第1张

python由于GIL的关系,python的多线程并没有发挥多核的作用,这些线程都是在在单核上跑的所以要想发挥多核的作用,就需要使用多进程,尽可能的在每一个CPU核心上分配到一个python进程。所以要想跑满多核CPU就得多进程多线程互相结合

关于 的生产者和消费者的实现,刚好最近有用到,简单总结记录下:

是系统独立调度核分配系统资源(CPU、内存)的基本单位,进程之间是相互独立的,每启动一个新的进程相当于把数据进行了一次克隆。

python提供了多种方法实现了多进程中间的 (可以修改同一份数据)。

GIL 的全称是 Global Interpreter Lock(全局解释器锁),来源是 Python 设计之初的考虑,为了数据安全所做的决定。

某个线程想要执行,必须先拿到 GIL,我们可以把 GIL 看作是“通行证”,并且在一个 Python 进程中,GIL 只有一个,这就导致了多线程抢占GIL耗时。这就是为什么在多核CPU上,Python 的多线程效率并不高的根本原因。

所以有必要学习下多进程的使用。