当前位置: 首页 > Python编程 > Python编程实战技能 > Python编程基础入门 > Python fork方法 创建新进程

Python fork方法 创建新进程

发布时间:2020年09月27日 08:42:04 来源: 点击量:512

【摘要】除可以进行多线程编程之外,Python 还支持使用多进程来实现并发编程。Python 的 os 模块提供了一个 fork() 方法,该方法可以 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。

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部