kyl*_*lex 3 c fork shared-memory
我有一个父母有5个子进程.我想向每个子进程发送一个随机变量.每个孩子都会对变量进行平方并将其发送回父母,父母将这些变量加在一起.
这甚至可能吗?我无法弄明白......
编辑:此过程将使用共享内存.
有很多方法可以做到这一点,所有这些都涉及某种形式的进程间通信.您选择哪一个取决于许多因素,但有些因素是:
popen等).一般来说,我可能popen会在产生孩子之前在父母中进行一些沟通会议; 父母将知道所有五个,但每个孩子可以配置为只使用一个.
共享内存也是可能的,虽然你可能每个孩子都必须有几个值来确保通信顺利进行:
在所有情况下,您需要一种方法让孩子们只接受他们的价值观,而不是那些运往其他孩子的价值观.这可能就像向共享内存块添加值以存储子进程的PID一样简单.所有孩子都会扫描块中的每个元素,但只处理状态为1且PID为PID的那些元素.
例如:
这给出了一个并行度量,每个孩子不断监视共享内存以进行工作,Main将工作放在那里并定期接收结果.