2

我目前正在尝试制作我的申请。我正在编写 C 代码并使用 PVM 库。我将尝试缩短应用程序应该做什么:

主进程产生,例如。5个从进程,它们在彼此和主进程之间进行通信。从属进程应该做两个并行的动作:执行自己的程序,第二件事——监听来自其他从属的消息。

这是一小部分代码,它是随机工作的:

int main()
{
     init();
     if(fork() == 0)
     {  
        while(1)
        {
        //perform listener actions
        }
     }
     else
     {  
        while(1)
        {
        //perform some procedures
        }
     }      
}

当我将一些 SEND_MESSAGE 操作放入这两个 while 循环中的 MASTER 进程时,它的执行对我来说非常奇怪。例如,如果没有这些 while 循环,如果我从这两个 while 中发送 5 条消息(总共 10 条 :-)),则主进程会收到例如。来自第一个循环的 5 个和来自第二个循环的 1 个消息。如果我们在父进程中等待(NULL),它执行得很好(当然没有while(1)循环)。可能是什么问题?主进程一直在等待传入的消息,但从不接收它们。

谢谢你的帮助!问候,雷米

4

0 回答 0