python中的多进程

python中实现多进程的方式:

1、通过直接Process然后传递参数的方式
就是 
p= Process(target=函数名,args=(a,))
2:通过继承子类然后新建子类对象的方式:
class subProcess(Process):
def run():
print('xxxxxx')


process = subProcess(target=func1,args=(ag1,ag2..))
process.start()
[process.join()]
通过新建该类的对象,调用start()方法


3:通过进程池的方式
pool = Pool(5)
pool.apply_async(方法名)的方式
pool.apply(方法名)
对于后边的方式不推荐使用,因为这中方式一次执行线程池中的一个线程,也就是说效率极低


对于以上三种方法,如果遇到线程不同步的问题,需要通过p.join()的方式来等待子进程完成后继续执行主线程,同时
在线程池中,pool.join()方法调用前必须先关闭线程池,即先调用pool.close()


在多进程中,成员的各个属性都是自己独享的,如果各个进程间需要传递参数,则需要通过进程间通讯的方式,比如通过queue来传递

猜你喜欢

转载自blog.csdn.net/yizhuanlu9607/article/details/78145845
今日推荐