python创建子进程_Python使用os.fork()创建子进程

本文介绍了Python中使用os.fork()创建进程的方法。当调用os.fork()时,它会创建一个与父进程几乎完全相同的子进程。父子进程分别持有各自独立的数据空间、堆和栈,但共享代码段。os.fork()返回值在父子进程中不同,子进程返回0,父进程返回子进程ID。示例代码展示了如何通过pid判断并执行父子进程的不同操作。
摘要由CSDN通过智能技术生成

导入os模块

首先要导入os模块,如下:import os

使用os.fork()创建进程

使用fork创建一个新的进程后,新进程是原进程的子进程,原进程为父进程。如果发生错误,则会抛出OSError异常。-*- coding: utf-8 -*-

import time

import os

try:

pid = os.fork()

except OSError:

pass

time.sleep(20)

os.fork()会发生以下事情:

子进程会复制父进程的数据,包括父进程数据空间、堆、栈等资源。需要注意的是,子进程持有的是上述存储空间的“副本”,父子进程间不共享存储空间,它们之间共享的只有代码段。

接着父子进程继续并行运行后面的代码,这也是fork(分叉)名字的含义。在子进程内,这个方法会返回0;在父进程内,这个方法会返回子进程的编号PID。这样就可以实现父子进程并发处理。

示例:通过processId区分父子进程# -*- coding: utf-8 -*-

import time

import os

#创建子进程前声明的变量

number = 7

try:

pid = os.fork()

if pid == 0:

print("this is child process")

number = number - 1

time.sleep(5)

print(number)

else:

print("this is parent process")

except OSError:

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值