如何解决并行启动多个进程
我有一系列流程,必须并行执行所有流程。由于进程数取决于数组的大小,我该如何执行此问题?我假设我必须使用fork()或线程,但是我不确定如何使用。在执行该过程后如何立即返回?谢谢!
解决方法
首先让我们弄清楚一些事情:
-
fork()在POSIX系统上,系统调用将一个进程分为两个。子进程将由返回码0指示,父进程将由子进程的Pid指示(在创建/执行/死亡子进程时立即返回)。除此之外,两者本质上是相同的,这意味着孩子需要执行特定的子处理(通常通过execve()来执行另一个二进制程序),而父对象wait4()则是孩子。另一种选择是不使用wait4(),而是监听在子终止时发送的SIGCHLD。
-
多个线程都在同一进程中发生。这意味着子处理是由相同地址空间中的代码块/功能执行的。
您的问题尚不清楚-因此-如果进程数组本质上是命令行数组,则可以使用上面的fork()和execve()。如果是函数数组,请使用线程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。