perl中提供了 Sys::AlarmCall;
要求$func1函数的执行时间限制在$timeout时间内执行完:
use Sys::AlarmCall;
$result = alarm_call($timeout1,$func1,@args1);
eg1:
use Sys::AlarmCall;
sub timeoutfunc{
print strftime("begin:%Y-%m-%d %H:%M:%S\n",localtime(time));
sleep 4;
print strftime("end:%Y-%m-%d %H:%M:%S\n",localtime(time));
};
alarm_call(5,'timeoutfunc')
执行结果:
begin:2016-12-22 11:00:41
end:2016-12-22 11:00:45
eg2:
sub timeoutfunc{
print strftime("begin:%Y-%m-%d %H:%M:%S\n",localtime(time));
sleep 7;
print strftime("end:%Y-%m-%d %H:%M:%S\n",localtime(time));
};
alarm_call(5,'timeoutfunc')
执行结果:
begin:2016-12-22 11:00:05