用C叉叉孩子,等他们死了再叉
Forking children in C and re-forking when they die
我有一些代码派生了许多子"worker"。童工:(
这非常有效,直到一个孩子因一些不可预测的错误而死亡,系统吞吐量下降。
监控孩子们崩溃的好模式是什么,然后用我激发他们的参数重新分叉?我以前没有写过这种类型的代码,看起来有点棘手。
假设系统类似Unix,您可以在父进程中使用wait
或waitpid
来同步监视子进程。或者,您可以使用SIGCHLD
异步监视它们,并在信号处理程序中调用wait
或waitpid
。每当子流程终止(包括崩溃)时,您都会收到通知。
要在崩溃时用相同的参数重新派生子级,您必须记录每个子级的参数。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 更改"child's parent's style sheet"时如何将孩子的样式表重置为 Qt 默认样式表?
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?
- 为什么 isVisible 在 QWidget 孩子中不起作用
- 我怎样才能有 2 个程序并让用户选择他们想要使用的程序?
- OOP使用不同的结构与孩子一起构建建议
- 他们如何将红外锁定像素转换为镜头前方 1m 的正常平面上的位置
- 全局静态生存期?他们会让你的程序崩溃吗?
- c ++如何将模板应用于模板类的孩子/朋友?
- 如何正确消除继承类型定义的歧义?以及如何简化他们的创作?
- C++:告诉用户输入 A、B 或 C,但如果他们输入不同的字符怎么办?
- 如何防止父进程在孩子死后丢失控制台输入?
- 如何通过 CMake 使用他们的 SHA256 哈希下载提升?
- 类的私有成员在我的类实例化期间更改,即使他们不应该
- 我可以制作一个基于孩子具有不同回报的虚函数吗?
- 我如何一遍又一遍地向用户提问,直到他们输入正确的值字段?
- C 从子线中杀死所有父母的孩子
- 用C叉叉孩子,等他们死了再叉