创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联公司是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十载时间我们累计服务了上千家以及全国政企客户,如成都电动窗帘等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致称扬。今天就跟大家聊聊有关Python 使用fork方法创建新进程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
除可以进行多线程编程之外,Python 还支持使用多进程来实现并发编程。
Python 的 os 模块提供了一个 fork() 方法,该方法可以 fork 出来一个子进程。简单来说,fork() 方法的作用在于,程序会启动两个进程(一个是父进程,一个是 fork 出来的子进程)来执行从 os.fork() 开始的所有代码。
fork() 方法不需要参数,它有一个返回值,该返回值表明是哪个进程在执行:
如果 fork() 方法返回 0,则表明是 fork 出来的子进程在执行。
如果 fork() 方法返回非 0,则表明是父进程在执行,该方法返回 fork() 出来的子进程的进程 ID。
下面程序示范了使用 fork() 方法创建新进程的过程:
import os print('父进程(%s)开始执行' % os.getpid()) # 开始fork一个子进程 # 从这行代码开始,下面代码都会被两个进程执行 pid = os.fork() print('进程进入:%s' % os.getpid()) # 如果pid为0,表明子进程 if pid == 0: print('子进程,其ID为 (%s), 父进程ID为 (%s)' % (os.getpid(), os.getppid())) else: print('我 (%s) 创建的子进程ID为 (%s).' % (os.getpid(), pid)) print('进程结束:%s' % os.getpid())
上面程序 fork 出来一个子进程,这意味着程序会分别使用父进程和子进程来执行从此行代码开始的代码。
在 Linux 或 Mac OS X 系统上运行上面程序(Windows 不支持 fork() 方法,因此在 Windows 系统上运行上面程序会报锚),可以看到如下运行结果:
父进程(1795)开始执行 进程进入:1795 我(1795)创建的子进程ID 为(1796). 进程结束:1795 进程进入:1796 子进程,其ID 为(1796),父进程ID 为(1795) 进程结束: 1796
从上面的运行结果可以看到,此时程序分别使用两个进程执行从“进程进入”到“进程结束”之间的代码,这就是 os.fork() 方法的作用。
在实际编程中,程序可通过 fork() 方法来创建一个子进程,然后通过判断 fork() 方法的返回值来确定程序是否正在执行子进程,也就是把需要并发执行的任务放在 if pid==0: 的条件执行体中,这样就可以启动多个子进程来执行并发任务。
需要注意的是,os.fork() 方法在 Windows 系统上无效,只在 UNIX 及类 UNIX 系统上有效,UNIX 及类 UNIX 系统包括 UNIX、Linux 和 Mac OS X。
看完上述内容,你们对Python 使用fork方法创建新进程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联-成都网站建设公司行业资讯频道,感谢大家的支持。
网页名称:Python使用fork方法创建新进程-创新互联
本文URL:http://lswzjz.com/article/eejho.html