免费注册 查看新帖 |

Chinaunix

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

请问:多线程程序中如何调用其它应用程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-27 18:55 |只看该作者 |倒序浏览
注意是多线程程序。

小菜遇到的问题是这样的:

1、A程序为多线程程序,其中有一线程A_pthread1需要反复打开关闭一设备DEV;
2、在A程序中需要调用另一个应用程序B;
3、结果在调用B的过程中,线程A_pthread1就会有打开设备DEV失败的情况;

分析:
1、不管是用system或是vfork+exec或是popen来调用程序B,都会有vfork这个动作,也就是会产生A程序的子进程A';
2、子进程A'中也会有一个线程A'_pthread1来反复打开关闭设备DEV;
3、结果是,如果这个设备是只能同时打个一次的,就会产生冲突。

不知道小菜我分析的对不对,还请高手指教,并给小菜一个解决方案。
偶知道,如果同时起两个应用程序A、C,而C的作用就是等A通过某种方式通知后调用程序B可以解决这个问题,但小菜我还不想多弄一个程序C出来。

论坛徽章:
0
2 [报告]
发表于 2010-10-28 14:23 |只看该作者
如果认为DEV是竞争的话就A_pthread1和B调用前加锁.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP