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

Python使用os.fork()创建4个子进程并在父进程列出子进程问题

解决方案

实现思路

  • 父进程中用列表存储每次os.fork()返回的子进程PID(os.fork()在父进程中返回值就是子进程的PID,固定大于0)
  • 子进程分支中执行完等待逻辑后必须主动退出,避免子进程进入后续循环生成额外的孙进程
  • 父进程完成4次fork后即可直接读取存储的PID列表,可额外增加等待子进程退出的逻辑避免产生僵尸进程

完整可运行代码

import os
import time

child_pids = []

for i in range(4):
    pid = os.fork()
    if pid > 0:
        # 父进程逻辑:存储子进程PID
        child_pids.append(pid)
    elif pid == 0:
        # 子进程逻辑:等待2秒后退出
        time.sleep(2)
        print(f"子进程 {os.getpid()} 执行完毕,即将退出")
        os._exit(0)
    else:
        # fork失败处理
        raise OSError("fork进程失败")

# 只有父进程会执行到这里
print("父进程创建的所有子进程PID列表:", child_pids)

# 可选:等待所有子进程退出,避免僵尸进程
for pid in child_pids:
    os.waitpid(pid, 0)
print("所有子进程已退出,父进程结束")

运行说明

代码执行后会先打印父进程收集到的4个子进程PID列表,等待2秒后会依次打印每个子进程的退出提示,最终父进程等待所有子进程退出后结束。

内容的提问来源于stack exchange,提问作者Divs 4799

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:45:01