注:保举学习:Python视频教程)
本文形容的环境为 Linux 操作零碎(也实用于年夜局部 POSIX 零碎)下的 CPython,可能没有实用于 Windows操作零碎或其余的Python 完成。
为了不歧义,下文用「主过程」或「以后过程」示意创立子过程的阿谁过程,而没有应用「父过程」,除了非明白指清楚明了「xx 的父过程」。
与多线程编程时需求通报一个 callable 工具没有同的是,多过程编程的时分,是将主过程复制到子过程,其实不能间接要求子过程执行某个 callable 工具。
正在 POSIX 零碎中,这个复制操作是由 clone() 以及 fork() 零碎挪用来实现的,普通次要应用后者。
假如 fork() 执行胜利的话,会辨别正在主过程以及子过程中前往子过程的 PID 以及 0,而后执行代码就开端没有同了。假如失败的话(内存不敷、PID 达到下限等),子过程就没有会创立,主过程会前往 -1,errno 会被设置为对应的谬误码。
正在 CPython 的完成中,os.fork() 次要是对 fork() 函数的封装,差异正在于失败时抛出 OSError,该异样的 errno 属性是对应的谬误码。
因而,多过程的 Python 代码大抵会长成这样:
import os try: pid = os.fork() if pid == 0: # 子过程 # 子过程的代码 else: # 主过程 # 主过程的代码 except OSError: # 主过程解决 fork 失败的代码
更多Python相干技巧文章,请拜访Python教程栏目进行学习!
以上就是python何时用多过程编程的具体内容,更多请存眷资源魔其它相干文章!
标签: Python python教程 python编程 python使用问题
抱歉,评论功能暂时关闭!