python3 - 多进程大于CPU数量下的多进程?

 

问题描述:

由于全局解释器锁的存在,python3的多线程是伪并行的。
现在看进程。如果一个CPU仅仅有4个核,我在设置pool的时候,设置Pool(5),此时,有5个并行的进程在同时运行,这个说法不对吧,任何时刻,由于CPU的束缚,仅仅只可以有4个进程并行。
我的理解对吧?


 

第 1 个答案:

同时在运行的线程只能是核心数量,但是CPU使用分时方法让用户觉得都是并行的,也就是4核心、5线程的情况下,CPU不会等待4个线程全部执行完毕才执行第五个线程,而是在执行过程中不断的在5个线程中切换执行,你可以想象成每个线程执行几行代码,然后立马切换到其他线程执行,之后再不断切换(切换是完全随机的,不能保证先后顺序),因此从用户角度他们是并行的。


 

第 2 个答案:

企业微信截图_16860364597962.png
第五个进程要等有可用核心才能运行


我在这个时间点git clone 了一个开源项目:Feb 3 14:40:00 2023 +0800 然后我知道在后续,此项目一直有commit ...