<强>方式一: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 ()
<强>总结强>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接