• 技术文章 >类库下载 >PHP类库

    php 设置一个函数的最大运行时间

    高洛峰高洛峰2016-10-14 10:21:35原创620
    如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现

    declare(ticks = 1);
    function a()
    {
        sleep(10);
        echo "a finishi\n";
    }
    function b()
    {
        echo "Stop\n";
    }
    function c()
    {
        usleep(100000);
    }
     
    function sig()
    {
        throw new Exception;
    }
     
    try
    {
        pcntl_alarm(1);
        pcntl_signal(SIGALRM, "sig");
        a();
        pcntl_alarm(0);
    }
    catch(Exception $e)
    {
        echo "timeout\n";
    }
     
    b();
    a();
    b();

    原理是在函数执行前先设定一个时钟信号,如果函数的执行超过规定时间,信号会被触发,信号处理函数会抛出一个异常,被外层代码捕获。这样就跳出了原来函数的执行,接着执行下面的代码。如果函数在规定的时间内,时钟信号不会触发,在函数结束后清除时钟信号,不会有异常抛出。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php 命令行方式运行时 几种传入参数的方式 下一篇:php 网络上关于设计模式一些总结
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php检查远程文件是否存在• php中stdClass的用法分析• 对php一些服务器端特性配置,加强php的安全• 在php中防止SQL注入的方法• php中opendir函数用法实例
    1/1

    PHP中文网