免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2515 | 回复: 4
打印 上一主题 下一主题

[C++] 线程中派生子进程 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-02-12 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-18 21:46 |只看该作者 |倒序浏览
主服务器程序收到客户端程序发来的命令后,需要执行一个第三方程序,这个第三方程序中使用了fork函数,在产生的子进程中
调用exec函数族中的某个函数。
如果主服务程序直接调用这个程序,那么主进程就会wait住,所以我想运行一个子线程,然后在里面调用这个第三方程序,
各位看看,原理上是否可以,是否合理?

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
2 [报告]
发表于 2016-05-20 14:43 |只看该作者
线程中fork子进程会拷贝一份父进程的进程空间,导致线程空间被覆盖。建议使用单独的服务进程,通过消息队列或SOCKET等和你的多线程程序通信。由单独的服务进程调用三方库完成业务流程。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-02-12 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
3 [报告]
发表于 2016-05-21 00:19 |只看该作者
wujiajia 发表于 2016-05-20 14:43
线程中fork子进程会拷贝一份父进程的进程空间,导致线程空间被覆盖。建议使用单独的服务进程,通过消息队列 ...


虽这么说,不过我调用了exec函数族后,进程上下文就会被新程序替换,也就没有你说的这个问题了吧

论坛徽章:
1
射手座
日期:2014-08-04 16:49:43
4 [报告]
发表于 2016-05-23 11:00 |只看该作者
比较安全的是在 主进程中FORK 一次,然后在子进程中运行此第三方程序。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
5 [报告]
发表于 2016-05-23 11:43 |只看该作者
可以fork子进程exec二进制,然后父进程定期非阻塞的waitpid回收孩子,不会影响父进程的原有处理流程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP