1. MutiProcessing(多进程)使用:
a. 什么是多进程?
在上面我们使用多线程去分别处理不同的事情,看起来,多线程处理并不比单线程循环处理的效率看起来那么的高。多进程是在利用我们电脑CPU多核的特性,去提高我们处理多个事情的效率。
b. 创建一个进程:
创建一个进程我们需要先导入涉及到进程的模块import multiprocessing as mp
进程拥有类似线程的方法。举个例子如下:
import multiprocessing as mp
def job(a, b):
print(a + b)
if __name__ == '__main__':
p1 = mp.Process(target= job, args = (1, 2))
p1.start()
p1.join()
c. 多进程中的Queue的使用:
在上面提到的多线程中使用Queue来保存工作结果以及多个线程之间的通信。在多进程中,Queue的作用依然是保存工作结果以及进行通信。让我们看下面例子来使用Queue保存result,如下:
import multiprocessing as mp
def job(q):
res = 0
for i in range(1000):
res += i + i ** 2 + i ** 3
q.put(res)
if __name__ == '__main__':
q = mp.Queue()
p1 = mp.Process(target= job, args = (q, )) #注意这里的args即使只有一个参数,也必须加上逗号,表示这个参数是一个可迭代的对象
p2 = mp.Process(target= job, args = (q, ))
p1.start()
p2.start()
p1.join()
p2.join()
res1 = q