ホームページ  >  記事  >  バックエンド開発  >  非同期PHPとは何ですか?

非同期PHPとは何ですか?

Guanhui
Guanhui転載
2020-06-18 17:58:293580ブラウズ

非同期PHPとは何ですか?

同期プログラミングと非同期プログラミングの違い

非同期 PHP の利点について説明する前に、同期プログラミング モデルを簡単に確認しましょう。そして非同期プログラミングモデル。同期コードは 1 行ずつ順番に実行されます。

別のタスクを開始する前に、前のタスクを完了する必要があります。非同期コードでは、複数のタスクを同時に完了できるため、アプリケーションのパフォーマンスとユーザー エクスペリエンスが大幅に向上します。

#関連コースの推奨事項: 「PHP プログラミングの入門から習得まで

##同期 PHP とは何ですか?

同期 PHP は、同期モデルを使用して記述された PHP コードを指します。 PHP はもともと同期開発をサポートするために作成されたため、ほとんどの PHP 開発者はこの言語で同期コードを記述することに慣れています。 Apache または Nginx を使用して Apache の mod_php または php-fpm を使用してプリフォークします。

PHP の基本的なチュートリアルをお探しですか?このブログ「

PHP 開発の基礎: PHP とは何か、なぜこれほど人気が​​あるのか​​、PHP の利点は何ですか?」を参照してください。

非同期 PHP とは何ですか?

非同期 PHP は、非同期モデルを使用して記述された PHP コードを指します。 Swoole などの拡張機能、または ReactPHP などの PHP フレームワークを使用すると、イベント ループを使用して PHP がリクエストと応答を非同期に受け入れることができます。

同期 PHP プログラミングと非同期 PHP プログラミングの主な違いは何ですか?

多くのアプリケーションでは、CPU は I/O タスク中にアイドル状態で多くの時間を費やします。非同期 PHP の考え方は、ノンブロッキング I/O タスクをバックグラウンドで実行し、CPU が完了に必要なデータと命令を待っている間に他のタスクを処理することで、利用可能なすべての CPU サイクルを最大限に活用して他のタスクを実行することです。 I/O。同期 PHP では、CPU は I/O タスクのみを処理します。現在のタスクが完了したら、キュー内の次のタスクの処理を続行します。

非同期 PHP を使用すると、同期 PHP で作成されたアプリケーションと比較して超高速のパフォーマンスを実現できます。一部のベンチマークでは、Swoole を使用して非同期 PHP を有効にすると、同期コードで php-fpm などのプロセス アクセラレータを使用した場合と比較して、スループットが 100 倍向上します。これが、php-fpm が Websocket などのプロトコルを使用した非同期リアルタイム通信をサポートしていない理由です。

どの PHP を使用する必要がありますか?

ランタイム、Web サーバー、プログラミング全般に関するほとんどの問題と同様、さまざまなユースケースによって、同期 PHP を使用するか非同期 PHP を使用するかが決まります。非同期 PHP を使用するには、コードが非同期 PHP をサポートしている必要があります。 PHP 開発者が慣れ親しんでいる拡張機能のほとんどは、ブロック プロセス呼び出し (I/O ブロッキングとも呼ばれる) を使用することに慣れており、これにより非同期モデルが達成できなくなります。

たとえば、Swoole を利用するには、I/O リクエストの呼び出しが発生したときに、その呼び出しをバックグラウンドに送信し、次の命令の実行を続ける必要があります。 I/O 呼び出しがデータを返すとき、Swoole はプロセスへの要求データを制御できるように、バックグラウンドに送信された I/O 呼び出しに制御を戻す必要があります。非同期プロセスをサポートするようにコードを書き直すには、何らかのリファクタリングが必要になる場合があります。ただし、節約した時間は将来的に価値があるかもしれません。

非同期 PHP プロジェクトの開始

非同期プロセスをサポートする方法でコードを記述するため、非同期プロセスをサポートできるプロジェクトを利用する必要があります。ここでは、トップ 3 の推奨事項を示します。

  • Swoole – 協調的な PHP 非同期プログラミング フレームワーク。

  • Reactphp – PHP 用のイベント駆動型のノンブロッキング I/O。

  • Amphp – PHP ノンブロッキング同時実行フレームワーク。

推奨チュートリアル: 「

この記事は、php 中国語 Web サイトの php チュートリアル列からのものです。学習へようこそ! >>

以上が非同期PHPとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。