0

我想将工作分成两个子进程。一个孩子找到最小值,另一个最大值。这是示例代码:

http://pastebin.com/P29wsRdP

现在返回值为 min:0 max:0,你能看看这个吗?

4

3 回答 3

1

进程不共享内存。由函数修改的最小/最大值全局变量是进程本地的。它们都不会触及父最小值/最大值变量。您需要以某种方式传达结果,例如使用管道/套接字。

我认为你还有一个问题,你实际上是在产生三个进程。使用第一个 fork() 分叉的第一个进程将执行第二个 fork(),因为它不受 if 保护。

于 2012-02-09T12:31:35.030 回答
0

您不是拆分为线程,而是拆分为新进程,每个进程都有自己的变量版本(因为两个新进程都有自己的独立内存)。您要么需要某种 IPC,要么需要实际使用线程。

于 2012-02-09T12:28:26.693 回答
0

您没有像其他人描述的那样使用线程。

但是,当您都可以在一个循环中查找最小值/最大值时,您为什么要这样做呢?

于 2012-02-09T12:42:37.260 回答