免费注册 查看新帖 |

Chinaunix

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

如何超时等待子进程序结束? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-13 10:04 |只看该作者 |倒序浏览
也就是说父进程等待子进程如果超出指定的时间就不再等待了

[ 本帖最后由 bierdaci 于 2006-1-15 12:29 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-01-13 13:50 |只看该作者
目前自己找到一个解决办法,就是用alarm和wait相结合,不知道有没有更直接的办法?

论坛徽章:
0
3 [报告]
发表于 2006-01-14 11:34 |只看该作者
这个有潜在问题
既然父进程要等,就应该永远等下去,等一半不是前功尽弃?还不如干脆不等。

论坛徽章:
0
4 [报告]
发表于 2006-01-14 23:05 |只看该作者
晕,是因为我要杀死那个让父进程等了一段时间的子进程啊,所以才要超时等待

论坛徽章:
0
5 [报告]
发表于 2006-01-14 23:59 |只看该作者
这种设计思路还真没见过
硬性杀掉一个程序可能会导致一系列的后果,破坏了应用的完整性和一致性

论坛徽章:
0
6 [报告]
发表于 2006-01-15 02:45 |只看该作者
子进程在终止时(自动退出、被动退出)都会向父进程发送SIGCHLD信号。不需要再使用闹钟信号,在父进程中使用waitpid系统调用、在收到SIGCHLD信号时取消等待就可以了。

论坛徽章:
0
7 [报告]
发表于 2006-01-15 11:44 |只看该作者
原帖由 xhbdahai 于 2006-1-15 02:45 发表
子进程在终止时(自动退出、被动退出)都会向父进程发送SIGCHLD信号。不需要再使用闹钟信号,在父进程中使用waitpid系统调用、在收到SIGCHLD信号时取消等待就可以了。


你都没明白LZ在说什么

论坛徽章:
0
8 [报告]
发表于 2006-01-15 12:36 |只看该作者
原帖由 FH 于 2006-1-14 23:59 发表
这种设计思路还真没见过
硬性杀掉一个程序可能会导致一系列的后果,破坏了应用的完整性和一致性


没办法项目就是这么要求的,因为我调用的程序是别人的程序,而这个程序不是很稳定,有时可能会发生死锁,如果真的发生死锁了我的程序也就死那儿,所以就得判案他的程序让是否让我等一段时间(正常情况下他的程序应该很快退出),如果超出指定时间了就把他杀死,这是个很简单的道理,大家不用把问题想的复杂化。

论坛徽章:
0
9 [报告]
发表于 2006-01-15 13:27 |只看该作者
原帖由 bierdaci 于 2006-1-15 12:36 发表


没办法项目就是这么要求的,因为我调用的程序是别人的程序,而这个程序不是很稳定,有时可能会发生死锁,如果真的发生死锁了我的程序也就死那儿,所以就得判案他的程序让是否让我等一段时间(正常情况下他的程 ...


原来如此
LZ2楼的主意是有效的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP