C 多处理

C 多处理,c,multiprocessing,C,Multiprocessing,一个进程pid有两个子进程,称为pid1和pid2,现在基于某种条件,一些工作需要在运行时分配给pid1,另一些分配给pid2 while(1) { if(x is even) { send data to pid1 ; } else { send data to pid2 ; } } 我们需要在运行时从父进程向这些子进程发送一些消息。 有办法吗? 谢谢。您可以利用套接字编程或共享内存进行进程消息传递。您可以创建两个线程而不是子进程。家长应根据数据类型(偶

一个进程pid有两个子进程,称为pid1和pid2,现在基于某种条件,一些工作需要在运行时分配给pid1,另一些分配给pid2

while(1)
{
 if(x is even)
  {
    send data to pid1 ;
  }
 else
  {
    send data to pid2 ;
  }
 }
我们需要在运行时从父进程向这些子进程发送一些消息。 有办法吗?
谢谢。

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

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

  • 处理偶数x数据的线程;它从
    EvenDataQ
  • 另一个线程处理奇数x数据;它从
    OddDataQ
  • 使用两个互斥锁,每个队列使用一个互斥锁。队列的实现取决于您

    附言: -线程比进程轻。
    -易于实现您的场景。

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

    您始终可以这样做::

    while(1)
    {
     if(x is even && PID_Of_pid1 == PID_Of_First_Child(xxx))
      {
        send data to pid1 ;
      }
     else
      {
        send data to pid2 ;
      }
     }
    

    首先,看一下这里:是的,我知道PID,但是因为有while循环,所以我需要向这些子进程发送数据,一些文本消息,在每个循环中,我想,我会尝试使用套接字或共享内存,但是谢谢