首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

子进程超时又父进程强制结束,但是子进程在规定的时间内完成了。父进程怎么结束

2012-07-30 
子进程超时又父进程强制结束,但是子进程在规定的时间内完成了。父进程如何结束?以下是我的代码:isOvertime(

子进程超时又父进程强制结束,但是子进程在规定的时间内完成了。父进程如何结束?
以下是我的代码:
isOvertime()是超时判断函数

Perl code
use warnings;use strict;my($pid);$| = 1;if($pid=fork()){    print("$pid \n");    sleep(1);        while(1)    {        if (isOvertime())        {            kill('STOP',$pid);            print("Sorry,you are overtime .\n");            exit();            }        else        {            if(wait())          {             print("OK , now i can go .\n");             exit();          }        }    }}elsif(defined($pid)){    sleep(30);    print("i am ok! \n");    exit();    }else{    print("error \n");    }



原来的程序设计是循环来控制时间。

但是程序执行到wait()的时候,就不循环了,一直在等待子进程的结束。。

如果我想让子进程在规定时间内完成的话,父进程就结束,应该如何来设计这个程序?

[解决办法]
不要用wait
用waitpid 指定为WNOHANG方式
这样就不会一直等待

热点排行