[英]asynchronous c++ inter-process control
我在Ubuntu 12.04 LTS上使用c ++编写此代码,但我明确不使用任何BOOST库。 我想做的是有一个父进程,两个或多个子进程同时运行。
父进程的行为类似于事件侦听器和任务调度程序。 孩子们完成父母告诉他们的任务; 这些任务是系统调用,父级不在乎何时完成。
到目前为止,我成功完成的工作是
接下来,我需要知道的是如何继续生孩子并在孩子仍在跑步的情况下返回父母。
因此,我的问题是,父母和孩子可以同时安全地同时跑步吗? (父母不在意孩子恢复出生后在做什么)
一般而言,要在pause()之后恢复子进程该怎么办?
下面是派生孩子的构造函数
childManager(int number_of_children, pid_t parent) {
int i=0;
while(number_of_children--) {
if(parent == getpid())
{
this->parent = parent;
children.push_back({++i,_IDLE,fork()});
if(parent != getpid()) pause();
}
}
}
我在这里看到的唯一问题是
一般而言,要在pause()之后恢复子进程该怎么办?
向其发送信号,其作用是执行信号捕获功能或终止该过程。 例如:
kill(children[i], SIGUSR);
也就是说,这不是一种理想的方法。 您也可以很轻松地让孩子在管道上阻塞,等待父母告诉他们做某事。 或大约30个不涉及信号的类似事物。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.