idea shell 中的函数 跳转_PHP如何为函数执行设置超时?
生活随笔
收集整理的這篇文章主要介紹了
idea shell 中的函数 跳转_PHP如何为函数执行设置超时?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(給PHP開發者加星標,提升PHP技能)
轉自:韓天峰
http://rango.swoole.com/archives/64
如何防止一個函數執行時間過長呢?在PHP里可以用pcntl時鐘信號+異常來實現。
代碼如下:
<?php 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();原理是在函數執行前先設定一個時鐘信號,如果函數的執行超過規定時間,信號會被觸發,信號處理函數會拋出一個異常,被外層代碼捕獲。這樣就跳出了原來函數的執行,接著執行下面的代碼。如果函數在規定的時間內,時鐘信號不會觸發,在函數結束后清除時鐘信號,不會有異常拋出。
- EOF -
推薦閱讀??點擊標題可跳轉1、用 PHP 實現多線程編程
2、也許這樣理解 HTTPS 更容易
3、PHP 8 性能怎么樣?
看完本文有收獲?請分享給更多人
關注「PHP開發者」加星標,提升PHP技能
點贊和在看就是最大的支持??
總結
以上是生活随笔為你收集整理的idea shell 中的函数 跳转_PHP如何为函数执行设置超时?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang适合做什么_什么八字适合做销
- 下一篇: canvas 红包雨_天猫双十一怎么买省