php中pcntl_alarm为函数设置超时限制

到php官方查看此函数说明

pcntl_alarm (PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm — 为进程设置一个alarm闹钟信号

说明¶int pcntl_alarm ( int $seconds )

创建一个计时器,在指定的秒数后向进程发送一个SIGALRM信号。每次对 pcntl_alarm()的调用都会取消之前设置的alarm信号。

参数¶seconds 等待的秒数。如果seconds设置为0,将不会创建alarm信号。

返回值¶返回上次alarm调度(离alarm信号发送)剩余的秒数,或者之前没有alarm调度(译注:或者之前调度已完成) 时返回0。

实例

 代码如下 复制代码

<?php
declare(ticks = 1);
function a()
{
    sleep(10);
    echo "a finishin";
}
function b()
{
    echo "Stopn";
}
function c()
{
    usleep(100000);
}
 
function sig()
{
    throw new Exception;
}
 
try
{
    //设置一个闹钟信号为一秒钟执行一次
    pcntl_alarm(1);
    //安装闹钟信号,并绑定callback
    pcntl_signal(SIGALRM, "sig");
    a();
    //取消闹钟信号
    pcntl_alarm(0);
}
catch(Exception $e)
{
    echo "timeoutn";
}
 
b();
a();
b();

附,pcntl扩展安装

pcntl扩展可以支持php的多线程操作.

原本需要重新编译PHP的后面configrue提示加上--enable-pcntl

为了省事直接编译算鸟.

 代码如下 复制代码
# cd /usr/local/src/php-5.2.6/ext/pcntl
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install

pcntl.so  加到php.ini中OK

时间: 2024-09-30 14:41:14

php中pcntl_alarm为函数设置超时限制的相关文章

php页面函数设置超时限制的方法_php技巧

本文实例讲述了php页面函数设置超时限制的方法.分享给大家供大家参考.具体方法如下: 碰到页面程序执行超时时会提醒Fatal error: Maximum execution time of 300 seconds exceeded 是因为程序执行时间超过了最大允许执行时间,解决办法我们总结了几个供大家选择. 对于函数我们可以常用下面方法,直接给函数设置超时时间来操作,代码如下: 复制代码 代码如下: declare(ticks = 1);     function a(){     sleep

php页面函数设置超时限制

对于函数我们可以常用下面方法,直接给函数设置超时时间.  代码如下 复制代码 declare(ticks = 1);     function a(){     sleep(10);     echo "a finishi "; } function b(){     echo "Stop "; } function c(){     usleep(100000); }   function sig(){     throw new Exception; }   t

js中对函数设置默认参数值的3种方法_javascript技巧

在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考.第一种方法: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2 return a+b; } 注意以上函数也可写作如下: function example(){ var a = arguments[0] ? ar

WinCE EBOOT中的Optional函数

在WinCE的EBOOT中,有一些函数属于Optional的OEM函数,也就是可选择实现的.这些函数会在BLCOMMON模块中被调用,我们需要在EBOOT中实现它们,然后把实现的函数赋值给BLCOMMON中的相应的函数指针上面就可以了,这样BLCOMMON模块在调用这些Optional函数的时候,会首先检查他们是否为NULL,如果为NULL就不执行,如果不是NULL就运行这些函数. 可以先看一下BLCOMMON模块的代码,在blcommon.c中有如下的定义: PFN_OEMVERIFYMEMO

PHP请求远程地址设置超时时间的解决方法_php技巧

php请求远程地址设置超时时间,主要讲解file_get_contents.fopen.curl这三个简单常用函数设置超时时间的方法,一般情况下建议使用curl,性能最好,效率也最高. 1.file_get_contents 请求超时设置 $timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); $text = file_get_conte

cstring的remove函数中的参数如何设置为一个cstring的变量名

问题描述 cstring的remove函数中的参数如何设置为一个cstring的变量名 例如 CString a: CString b: 我想在a中找到与b相同的字符段,然后用remove删除b在a中 但是remove的参数用b这个变量名字表示:怎么弄.求指导

详解在C++中显式默认设置的函数和已删除的函数的方法_C 语言

在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数.已删除的函数还可为您提供简单语言,以防止所有类型的函数(特殊成员函数和普通成员函数以及非成员函数)的参数中出现有问题的类型提升,这会导致意外的函数调用. 显式默认设置的函数和已删除函数的好处 在 C++ 中,如果某个类型未声明它本身,则编译器将自动为该类型生成默认构造函数.复制构造函数.复制赋值运算符和析构函数.这些函数称为特殊成员函数,它们使 C++ 中的简单用户定义类型的行为如同 C 中的结构.也就是说,可以创

videocapture-VideoCapture的open函数如何设置超时

问题描述 VideoCapture的open函数如何设置超时 最近用Opencv3.0 VideoCapture类open函数打开rtsp流,当我打开一个无效的rtsp流时, 将近一分钟才提示我错误...如何设置超时呢?

asp.net用Excel的com组件导出Excel表格中单元格函数公式怎么设置?

问题描述 asp.net用Excel的com组件导出Excel表格中单元格函数公式怎么设置? 解决方案 解决方案二:关注!