一、多进程的定义和优点
多进程相当于多核处理,它能弥补threading的缺点 即它可以把任务平均分配给每一个核,并且让它们同时进行。
二、添加进程
添加进程和join功能都与threading一样
三、储存进程输出Queue
多进程中也不可以用return来返回,所以我们同样要先把他存到Q里面再输出
先定义一个函数job,并把这个函数通过多线程进行计算,把结果放到q里面,再用res来打开q,最后输出res
输出
四、比较多进程、多线程和什么都不用的速度
结果肯定是多进程最快,另外两个就没准了
由输出可知 normal用时:1.7
多线程用时:1.17
多进程用时:1.04
所以可以看出多线程最短
五、 进程池pool
进程池就是你把所有的要运行的东西放到一个rzdyl里面去,python会帮你自动分配各个步骤,并且在pool里面我们可以得到返回值(return)
具体的操作都在图片里面
输出
六、共享内存 shared memory
举个例子,一个CPU上有4个核,这四个核不能共享(比如说:第一个cpu给这个a加了2,再给下一个CPU进行操作是不可以的),所以要用到shared memory
我先放个CPU的图
七、lock 进程锁
假如没用lock
输出
不用lock,输出的结果就比较麻烦,所以我们用进程锁,加进程锁的方法跟多线程的方法一样
再输出
由于多线程和多进程一样,所以本课笔记比较简单