我正在开发一个会多次执行特定任务的程序。我已经使用线程编写了该程序,但现在需要使用fork()来实现。
使用线程时,我只需创建指定数量的线程,让它们执行函数(更改共享内存中的变量),然后最终执行使用共享内存中的最终值的某些操作。
现在,我想做同样的事情,但不确定如何做到这一点,因为每次调用fork()时,它本质上都会成倍增加。所以,如果我在for循环中调用fork(),则每个父进程和子进程都将通过循环,在自己身上调用fork()。
简而言之,我的问题是: 如何使用fork创建精确数量的子进程(假设我需要5个子进程),并使父进程等待这些5个子进程执行完毕后再继续执行?
感谢您的帮助!
使用线程时,我只需创建指定数量的线程,让它们执行函数(更改共享内存中的变量),然后最终执行使用共享内存中的最终值的某些操作。
现在,我想做同样的事情,但不确定如何做到这一点,因为每次调用fork()时,它本质上都会成倍增加。所以,如果我在for循环中调用fork(),则每个父进程和子进程都将通过循环,在自己身上调用fork()。
简而言之,我的问题是: 如何使用fork创建精确数量的子进程(假设我需要5个子进程),并使父进程等待这些5个子进程执行完毕后再继续执行?
感谢您的帮助!