我们可以动态地创建流程并维护流程池吗?
Can we dynamically create a process and maintain a process pool?
我的一个用C编写的服务器使用fork()
创建了'N'个子进程,并将运行报告的任务委托给它。它没有能力监控它的子进程是活是死。目前的需求是,每当活动进程的数量达到<时,就生成一个新进程。N.(例如,如果5个子进程中有2个子进程死亡。)我应该再生成两个进程。我使用socketpair()
在父进程和子进程之间进行通信。
我阅读了各种帖子,但似乎他们谈论的是"pre-fork"机制。从本质上讲,我对使用fork()
动态创建子进程感兴趣。这可能吗?如果是,你能给我一些建议吗?
如果您需要的是监视子进程并在它们停止时生成它们,那么这种方法可能会有所帮助。
使父进程在循环中使用waitpid
等待子进程的更改。在父节点上维护一个计数器来跟踪活动进程的数量。根据您的需求,您可以使用fork
调用创建一个或多个新的子进程并更新计数器。
fork的Man is here
跟踪儿童死亡的类似问题在这里
相关文章:
- c++中的线程池
- 在std::thread中,joinable()然后join()线程安全吗
- 在C/C++中执行"_dl_init"(程序初始化)是单线程的吗
- 通用线程池类工作不正常
- 提升精神 V2 Qi 语法线程安全吗?
- asio 链对象线程安全吗?
- 我应该在C++中打印线程 ID 吗?
- 正在取消线程池中运行的任意作业
- SDL_UpdateTexture线程安全吗?
- std::weak_ptr<T>::锁定线程安全吗?
- 正确使用模板将函数传递到线程池
- Vulkan默认情况下已经有多线程了吗
- 线程池如何结束程序
- std::free线程安全吗
- 一个互斥锁与多个互斥锁.哪一个更适合线程池?
- 有人可以解释为什么使用 OpenMP 部分的运行速度比单个线程慢吗?
- 这C++指针使用线程安全吗?
- 让线程池的所有线程执行给定函数
- 我们可以动态地创建流程并维护流程池吗?
- 这个线程池使用安全吗?