PHP プログラミングでプログラムの同時実行性を試すいくつかの方法のまとめ、PHP プログラミング_PHP チュートリアル
Jul 12, 2016 am 08:56 AMPHP プログラミングでプログラムの同時実行を試すいくつかの方法のまとめ、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

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
