multiprocessing是一个使用类似于线程模块的API来支持产卵进程的软件包。多处理包提供本地和远程并发,通过使用子进程而不是线程有效地侧移全局解释器锁。由于这个原因,多处理模块允许程序员充分利用给定机器上的多个处理器。它可以在Unix和Windows上运行。简单来说,就是对多核CPU的使用,提高利用率. 多进程的基本语法:多...
多进程适合在CPU密集操作(cpu操作指令比较多,如位多的的浮点运算)。 多线程适合在IO密性型操作(读写数据操作比多的的,比如爬虫)
cpu密集为何使用多进程: 1.获取GIL2.执行代码直到sleep或者是python虚拟机将其挂起。3.释放GIL 可见,某个线程想要执行,必须先拿到GIL,我们可以把GIL看作是“通行证”,并且在一个python进程中,GIL只有一个。拿不到通行证的线程,就不允许进入CPU执行。 在python2.x里,GIL的释放逻辑是当前线程遇见IO操作或者ticks计...