gpt4 book ai didi

python - 如何在循环中使用 os.fork() 调用不同的函数?

转载 作者:行者123 更新时间:2023-12-01 04:20:04 26 4
gpt4 key购买 nike

我尝试使用以下代码

import os


def sum1(a):
print "We are in the child process with PID= %d"%os.getpid()
for j in range(100000000):
m=j
print "Sum: ",sum(a)

os._exit(0)



def mul(a):

print "We are in the child process with PID= %d"%os.getpid()
k=1
for j in range(100000000):
m=j
for i in a:
k=k*i
print "Multiplication: ",k

def parent(a):
while True:
print "We are in the parent process with PID= %d"%os.getpid()
newpid=os.fork()

if newpid == 0:
sum1(a)

else:
mul(a)
if input() == 'q': break

a=[12,12,12,12]
parent(a)

但在此代码中,它仅为一个函数 [ sum1() ] 创建 fork 进程。我想循环执行 fork 进程,每次调用不同的函数。例如,我想在循环中调用以下三个具有不同 fork 进程的函数

def f1(a):
print a
def f2(b):
print b
def f3(c):
print c

类似于

的东西
for i in range(3):
pid = os.fork()
if pid == 0:
f1(a) # then call f2(b) in next iteration and then f3(c)in last iteration
os._exit(0)

最佳答案

func_map = {0: f1, 1: f2, 2: f3}

def parent(a):
for i in range(3):
pid = os.fork()
if pid == 0:
func_map[i](a)
return

关于python - 如何在循环中使用 os.fork() 调用不同的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33864661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com