ホームページ >バックエンド開発 >PHPチュートリアル >set関数の実行時間を決定する方法

set関数の実行時間を決定する方法

WBOY
WBOYオリジナル
2016-06-13 12:49:411331ブラウズ

set 関数の実行時間を決定するにはどうすればよいですか?
function a(){
//...
true を返します;
}
関数 b(){
//...
false を返します;
}
ここで a();
の呼び出しを開始します。
a() が 1.2 秒経っても結果を返さない場合は、すぐに b() を呼び出すという考え方です。 それに対処する美しい方法はありますか?


-----解決策---------
自分自身にとって物事を難しくさせたり、PHP にとって物事を難しくさせたりしないでください

私の解決策
1. Ajax タイムアウトの解釈 短所: 時刻の精度が十分ではない 長所: この関数は一時的に実装できます
2. PHP の C 言語拡張 短所: 難しすぎて費用対効果が低い 長所: 正確な時間と高効率
3. 偉い人たちを待ちます....

-----解決策--------- libevent タイマー機能は実装できますが、その場合は、タイムアウト設定が必要です。

------解決策------ - ------------php 自体がそのような機能を提供します
美しいかどうかは自分で決める
すべての操作が PHP 実行時に計算されるわけではありません。自分で検証できます
register_shutdown_function( "time_out_callback");<br />
set_time_limit( 2 );//假设2秒就算超时<br />
//模拟超时<br />
@c();<br />
//error_reporting($es);//恢复设置<br />
<br />
function time_out_callback() {<br />
  if(connection_status() == 2) {<br />
    b();    <br />
  }<br />
}<br />
function c() {<br />
  //你的可能的超时代码<br />
  echo __FUNCTION__, ' ';<br />
  while (true) {<br />
    echo '.';<br />
    //        echo connection_status()."<br/>";//echo 0<br />
    usleep( 100000 );//给cpu透口气<br />
  }<br />
}<br />
function b() {<br />
  echo '<br>' . __FUNCTION__, ' ';<br />
  echo 'c超时 连接状态:' . connection_status();//echo 2,c超时<br />
}<br />
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。