Python中的进程multiprocessing模块
由于Python的GIL全局解释器锁存在,多线程未必是CPU密集型程序的好的选择。
多进程可以完全独立的进程环境中运行程序,可以较充分地利用多处理器。
但是进程本身的隔离带来的数据不共享也是一个问题。而且线程比进程轻量级。
- Process类的设计遵循了Thread类的API,减少了学习难度,使用和线程Thread类差不多。
- 注意:注意:多进程代码一定要放在
__name__ == "__main__"
下面执行。 - 例子,使用多进程解决运行算法密集程序
import multiprocessing
import datetime
def calc(i):
sum = 0
for _ in range(1000000000): #10忆
sum += 1
return i,sum
if __name__ == "__main__":
start = datetime.datetime.now()
ps = []
for i in range(4):
p