线程中派生子进程
主服务器程序收到客户端程序发来的命令后,需要执行一个第三方程序,这个第三方程序中使用了fork函数,在产生的子进程中调用exec函数族中的某个函数。
如果主服务程序直接调用这个程序,那么主进程就会wait住,所以我想运行一个子线程,然后在里面调用这个第三方程序,
各位看看,原理上是否可以,是否合理? 线程中fork子进程会拷贝一份父进程的进程空间,导致线程空间被覆盖。建议使用单独的服务进程,通过消息队列或SOCKET等和你的多线程程序通信。由单独的服务进程调用三方库完成业务流程。 wujiajia 发表于 2016-05-20 14:43 static/image/common/back.gif
线程中fork子进程会拷贝一份父进程的进程空间,导致线程空间被覆盖。建议使用单独的服务进程,通过消息队列 ...
虽这么说,不过我调用了exec函数族后,进程上下文就会被新程序替换,也就没有你说的这个问题了吧 比较安全的是在 主进程中FORK 一次,然后在子进程中运行此第三方程序。 可以fork子进程exec二进制,然后父进程定期非阻塞的waitpid回收孩子,不会影响父进程的原有处理流程。
页:
[1]