Python实现多进程的四种方式

  

<强>方式一:os.fork()

        # - * -编码:utf - 8 - *   ”“”   pid=os.fork ()   1 .只用在Unix系统中有效,Windows系统中无效   2.叉函数调用一次,返回两次:在父进程中返回值为子进程id,在子进程中返回值为0   ”“”   进口操作系统   pid=os.fork ()   如果pid==0:   打印(“执行子进程,子进程pid={pid},父进程ppid={ppid} " .format (pid=os.getpid (), ppid=os.getppid ()))   其他:   打印(“执行父进程,子进程pid={pid},父进程ppid={ppid} " .format (pid=pid, ppid=os.getpid ()))      

<强>方式二:使用多处理模块:创建过程的实例,传入任务执行函数作为参数

        # - * -编码:utf - 8 - *   ”“”   过程常用属性与方法:   名称:进程名   pid:进程id   run(),自定义子类时覆写   开始(),开启进程   加入(超时=None),阻塞进程   终止(),终止进程   is_alive(),判断进程是否存活   ”“”   进口操作系统,时间   从多处理导入过程   def工人():   打印(“子进程执行中在祝辞祝辞pid={0}, ppid={1} " .format (os.getpid (), os.getppid ()))   time . sleep (2)   打印(“子进程终止祝辞祝辞祝辞pid={0} " .format (os.getpid ()))   def main ():   打印(“主进程执行中在祝辞祝辞pid={0} " .format (os.getpid ()))   ps=[]   #创建子进程实例   因为我在范围(2):   p=过程(目标=工人,名称=肮と恕? str (i), arg游戏=())   ps.append (p)   #开启进程   因为我在范围(2):   ps[我].start ()   #阻塞进程   因为我在范围(2):   ps[我]. join ()   打印(“主进程终止”)   if __name__==癬_main__”:   main ()      

<强>方式三:使用多处理模块:派生过程的子类,重写运行方法

        # - * -编码:utf - 8 - *   进口操作系统,时间   从多处理导入过程   类MyProcess(过程):   def __init__(自我):   Process.__init__(自我)   def运行(自我):   打印(“子进程开始祝辞祝辞祝辞pid={0}, ppid={1} " .format (os.getpid (), os.getppid ()))   time . sleep (2)   打印(“子进程终止祝辞祝辞祝辞pid={} " .format (os.getpid ()))   def main ():   打印(“主进程开始祝辞祝辞祝辞pid={} " .format (os.getpid ()))   项目=MyProcess ()   myp.start ()   # myp.join ()   打印(“主进程终止”)   if __name__==癬_main__”:   main ()      

<强>方式四:使用进程池池

        # - * -编码:utf - 8 - *   进口操作系统,时间   从多处理导入池   def工人(arg):   打印(“子进程开始执行祝辞祝辞祝辞pid={}, ppid={},编号{}“.format (os.getpid (), os.getppid (), arg))   time . sleep (0.5)   打印(“子进程终止祝辞祝辞祝辞pid={}, ppid={},编号{}“.format (os.getpid (), os.getppid (), arg))   def main ():   打印(“主进程开始执行祝辞祝辞祝辞pid={} " .format (os.getpid ()))   ps=池(5)   因为我在范围(10):   # ps.apply(工人,args=(我))#同步执行   ps.apply_async(工人,args=(我))#异步执行   #关闭进程池,停止接受其它进程   ps.close ()   #阻塞进程   ps.join ()   打印(“主进程终止”)   if __name__==癬_main__”:   main ()      

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

Python实现多进程的四种方式