一个进程 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 ;
}
}
我们需要在运行时从父进程向那些子进程发送一些消息。有没有办法做到这一点?谢谢。
您可以创建两个线程而不是子进程。Parent 应根据数据类型(偶数/奇数)插入两个不同的队列,例如EvenDataQ
& OddDataQ
。
EvenDataQ
OddDataQ
为每个队列使用两个互斥锁。队列的实现取决于你。
PS: - 线程比进程轻。- 易于实施您的方案。
假设::您知道两个子进程的 PID。
你总是可以这样做::
while(1)
{
if(x is even && PID_Of_pid1 == PID_Of_First_Child(xxx))
{
send data to pid1 ;
}
else
{
send data to pid2 ;
}
}
您可以利用套接字编程或共享内存进行进程消息传递。