Python进程Multiprocessing模块原理解析

时间:2021-05-22

先看看下面的几个方法:

  • star() 方法启动进程,
  • join() 方法实现进程间的同步,等待所有进程退出。
  • close() 用来阻止多余的进程涌入进程池 Pool 造成进程阻塞。

参数:

target 是函数名字,需要调用的函数

args 函数需要的参数,以 tuple 的形式传入

用法:

multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

写一个的例子:

from multiprocessing import Poolimport os,timedef pr(str): print("The " + str + " is %s" %(os.getpid())) time.sleep(1) print("The " + str + " is close")if __name__ == "__main__": print('-------------------------------') print("the current pid: "+ str(os.getpid())) # 默认为自己电脑的核数 p = Pool(2) for i in range(5): p.apply_async(pr,args=('xdxd',)) p.close() p.join() print("----------close-----------------")

通过结果可以看出,是2个进程同时启动,同时启动的进程数与pool中设置的数量和自己电脑的核数有关

结果:

-------------------------------the current pid: 9562The xdxd is 9563The xdxd is 9564The xdxd is closeThe xdxd is closeThe xdxd is 9563The xdxd is 9564The xdxd is closeThe xdxd is closeThe xdxd is 9563The xdxd is close----------close-----------------

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章