You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用os.fork()创建指定数量N个Python子进程

用os.fork()创建N个子进程的实现方案

你原来的代码仅调用了一次os.fork(),所以只能生成1个子进程。要生成N个子进程只要在循环中调用fork即可,核心注意点是子进程执行完自身逻辑后必须主动退出,否则子进程会进入下一轮循环生成孙进程,最终产生的进程数量会远超预期。

改造后可生成N个子进程的代码

import os, time
import sys

x = 1
N = 5  # 此处修改为你需要的子进程数量

# 你原来的func函数
def func():
    print(5 * x, "(child)")

try:
    for _ in range(N):
        pid = os.fork()
        if pid == 0:
            # 子进程执行逻辑
            func()
            sys.exit()  # 子进程执行完直接退出,不参与后续fork
    # 父进程逻辑:所有子进程创建完成后执行
    time.sleep(5)
    print(x)

except Exception as e:
    print(f"进程异常: {e}")

执行效果

运行后会先输出N行5 (child)(顺序可能不固定,由系统调度决定),父进程等待5秒后输出1,和你原来的逻辑完全一致。

可选优化

如果不想父进程固定等待5秒,可以用os.wait()回收所有子进程,父进程会在所有子进程执行完毕后立刻执行后续逻辑,替换time.sleep(5)的代码如下:

# 替换time.sleep(5)
for _ in range(N):
    os.wait()

内容的提问来源于stack exchange,提问作者bot 2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:36:06