PHP プログラミングでプログラムの同時実行性を試すいくつかの方法のまとめ、PHP プログラミング_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:56:11
オリジナル
757 人が閲覧しました

PHP プログラミングでプログラムの同時実行を試すいくつかの方法のまとめ、PHP プログラミング

この記事では、PHP プログラミングにおける 5 つの同時実行方法を大まかにまとめています:
1.curl_multi_init
ドキュメントには、複数の cURL ハンドルの非同期処理を許可すると書かれていますが、これは実際に非同期です。ここで理解する必要があるのは select メソッドです。これについては、curl_multi 接続のいずれかでアクティビティが発生するまでブロックするというドキュメントで説明されています。一般的な非同期モデルを理解していれば理解できるはずですが、selectとepollはどれも有名です

リーリー

ここで設定したのは、select が結果を取得したときにループを終了し、http リクエストをキャンセルするために、curl リソースを削除することです。

2.swoole_client
swoole_client は非同期モードを提供します。実はこれを忘れていました。ここでのスリープ方法では、swoole バージョンが 1.7.21 以上である必要があります。私はまだこのバージョンにアップグレードしていないので、直接終了できます。

リーリー

3.プロセス
swoole_process のことをほとんど忘れていました。ここでは pcntl モジュールは必要ありません。しかし、書いてみると、これは実際には割り込み要求ではなく、最初に来たものが読み取られ、その後の戻り値は無視されることがわかりました。

リーリー

4.pthreads
pthreads モジュールをコンパイルすると、PHP をコンパイルするときに ZTS をオンにする必要があるというメッセージが表示されるため、wamp の多くの PHP はたまたま TS であるため、dll を直接ダウンロードしました。ドキュメントを対応するディレクトリにコピーし、次に win でテストします。 まだよく理解できていないのですが、PHPのpthreadとPOSIXのpthreadは全く違うという記事を見つけました。コードは少し悪いので、感触を得るにはもっとドキュメントを読む必要があります。

リーリー

5.収量
同期的な方法で非同期コードを作成します:

リーリー

コード解釈:

PHP の組み込み配列機能を使用して、シンプルな「タイムアウト管理」を実現し、タイム スライスとしてミリ秒の精度を使用します。 AsyncSendRecv インターフェイスをカプセル化し、yield AsyncSendRecv() の形式で呼び出します。これはより自然です。 エラー処理メカニズムとして例外を追加する ret_code を追加することもできますが、これはデモンストレーションのみを目的としています。

興味がありそうな記事:

phpのセッションロックと同時実行性
  • phpは、フラッシュセールや宝くじなど、トラフィックの多い同時倉庫保管によって引き起こされるマイナス在庫の問題を解決します
  • phpは、URLとハンドルに基づいてサムネイルを自動的に生成します高い同時実行性の問題
  • php での同時読み取りおよび書き込みファイルの競合の解決策
  • PHP 同時実行が MYSQL に課すプレッシャーへの解決策
  • PHP 同時アクセスのサンプル コード
  • PHP Curl 同時実行のベスト プラクティス コード共有
  • PHP がどのように問題を解決するか大規模な Web サイトのトラフィックの問題と同時実行性の問題
  • Nginx+PHP (FastCGI) で同時実行性の高い WEB サーバーを構築する (自動インストール スクリプト) 第 2 版
  • 一般的なロックと同時実行下での PHP 固有の実装コードのロック

http://www.bkjia.com/PHPjc/1113733.html

本当http://www.bkjia.com/PHPjc/1113733.html技術記事 PHP プログラミングでプログラムの同時実行を試すいくつかの方法の概要。PHP プログラミングに関するこの記事では、PHP プログラミングの 5 つの同時実行メソッドを大まかに要約しています。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート