同时分叉多个进程而不会阻塞主线程

时间:2019-11-16 03:55:43

标签: c linux multithreading multiprocessing

这比编码问题更像是一个一般性问题,我希望您能提供一些指导或一般性方法。

我的编程任务是实现一个简单的作业计划程序,该程序将执行非交互式作业。在任何给定时间,仅应执行4个作业。如果提交了4个以上的作业,则这些其他作业必须等待,直到完成4个正在执行的作业之一。提示将不断询问用户输入应执行的命令。

这意味着绝不应阻塞或等待进程完成的主线程,或者准确地说是运行无限循环要求用户输入命令的主函数。使用fork()exec()wait()将导致我的主进程等待,这不是期望的行为。因此,我想到了在父进程中省略wait(),并使用SIGCHLD的信号处理程序来捕获分叉进程终止时的瞬间。我将拥有一个全局变量,该变量保存在任何给定时间正在运行多少个进程的值。

这是正确的方法还是对此有更好/更优雅的解决方案? 提前非常感谢!

0 个答案:

没有答案
相关问题