0

一个进程 pid 有两个子进程,分别称为 pid1 和 pid2,现在根据一定的条件,在运行时需要将一些工作分配给 pid1,一些工作需要分配给 pid2。

while(1)
{
 if(x is even)
  {
    send data to pid1 ;
  }
 else
  {
    send data to pid2 ;
  }
 }

我们需要在运行时从父进程向那些子进程发送一些消息。有没有办法做到这一点?谢谢。

4

3 回答 3

0

您可以创建两个线程而不是子进程。Parent 应根据数据类型(偶数/奇数)插入两个不同的队列,例如EvenDataQ& OddDataQ

  1. 一个线程来处理甚至 x 个数据;它从中挑选数据EvenDataQ
  2. 另一个处理奇数 x数据的线程;它从中挑选数据OddDataQ

为每个队列使用两个互斥锁。队列的实现取决于你。

PS: - 线程比进程轻。- 易于实施您的方案。

于 2012-10-17T06:20:48.413 回答
0

假设::您知道两个子进程的 PID。

你总是可以这样做::

while(1)
{
 if(x is even && PID_Of_pid1 == PID_Of_First_Child(xxx))
  {
    send data to pid1 ;
  }
 else
  {
    send data to pid2 ;
  }
 }
于 2012-10-17T06:28:17.643 回答
0

您可以利用套接字编程或共享内存进行进程消息传递。

于 2012-10-17T06:07:22.367 回答