国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php中pcntl_alarm為函數設置超時限制

2024-05-04 21:47:38
字體:
來源:轉載
供稿:網友

原理是在函數執行前先設定一個時鐘信號,如果函數的執行超過規定時間,信號會被觸發,信號處理函數(sig)會拋出一個異常,被外層代碼捕獲。這樣就跳出了原來函數的執行,接著執行下面的代碼。如果函數在規定的時間內,時鐘信號不會觸發,在函數結束后清除時鐘信號,不會有異常拋出

到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。

實例代碼如下:

  1. <?php 
  2. declare(ticks = 1); 
  3. function a() 
  4.     sleep(10); 
  5.     echo "a finishin"
  6. function b() 
  7.     echo "Stopn"
  8. function c() 
  9.     usleep(100000); 
  10.  
  11. function sig() 
  12.     throw new Exception; 
  13.  
  14. try 
  15.     //設置一個鬧鐘信號為一秒鐘執行一次 
  16.     pcntl_alarm(1); 
  17.     //安裝鬧鐘信號,并綁定callback 
  18.     pcntl_signal(SIGALRM, "sig"); 
  19.     a(); 
  20.     //取消鬧鐘信號 
  21.     pcntl_alarm(0); 
  22. catch(Exception $e
  23.     echo "timeoutn"
  24. b(); 
  25. a(); 
  26. b(); 
附,pcntl擴展安裝

pcntl擴展可以支持php的多線程操作,原本需要重新編譯PHP的后面configrue提示加上--enable-pcntl,為了省事直接編譯算鳥,代碼如下:

  1. # cd /usr/local/src/php-5.2.6/ext/pcntl 
  2. # phpize 
  3. # ./configure --with-php-config=/usr/local/php/bin/php-config 
  4. # make && make install 
pcntl.so  加到php.ini中OK

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛冈县| 文昌市| 晋城| 伊川县| 新疆| 清原| 温宿县| 西峡县| 昂仁县| 黑河市| 广宁县| 北流市| 榆社县| 偃师市| 浮梁县| 泗洪县| 乌海市| 镶黄旗| 台江县| 梁平县| 徐汇区| 富源县| 苗栗县| 蓬安县| 车险| 乐陵市| 成安县| 宜春市| 江达县| 景德镇市| 大埔区| 新巴尔虎左旗| 海口市| 德保县| 新干县| 尼木县| 安庆市| 长沙市| 阿拉尔市| 长泰县| 泸州市|