Linux Fork 的目的?

标签 linux fork

在 fork() 中,创建子进程时,通常父进程会等待子进程完成,所以我想知道创建子进程的原因是什么,如果它必须等待空闲等待它完成,而不是执行工作本身?我试着阅读一些关于它的东西,但它让我更加困惑

最佳答案

你很困惑: parent 可能会“等待” child ,但并不一定意味着它在等待之前什么都不做。 parent 做它的事情,然后调用等待。如果子进程已经完成,wait 立即返回,否则父进程可能空闲(即未被操作系统安排执行)一段时间,直到子进程真正完成。

一个例子:绿色的 parent fork 黄色的 child 。 child 可能在 parent 等待之前或之后完成:

processes

有些情况要求 parent 什么都不做,例如它会产生许多工作进程,然后等待它们全部完成,从而简单地充当管理器...

关于Linux Fork 的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081240/

相关文章:

linux - Yocto Bitbake Glibc 构建失败

c# - Directory.GetCurrentDirectory() 不适用于 Linux?

在c中使用fork和pipe后,无法在终端中看到程序的输出

c++ - cout << fork() 实际上调用了 fork() 吗?

Python多处理池一些进程在 fork 时处于死锁状态,但在生成时运行

linux - 将 Git 添加到/bin/bash

linux - 在 bash 脚本中使用 mv 丢失文件

linux - 如何在 Linux Debian Wheezy 上安装 Haskell Platform?

c - 在 C 中使用 fork()?

c - 在 child 运行时用 fork 做某事