ホームページ > 記事 > PHPフレームワーク > スウールは非同期ですか?
swoole は、PHP の非同期、並列、高性能ネットワーク通信エンジンです。純粋な C 言語で書かれており、PHP 言語の非同期マルチスレッド サーバーと非同期TCP/UDP ネットワーク クライアント、非同期 MySQL、非同期 Redis、データベース接続プール、AsyncTask、メッセージ キュー、ミリ秒タイマー、非同期ファイルの読み取りと書き込み、非同期 DNS クエリ。
Swoole には、HTTP/WebSocket サーバー/クライアントおよび Http2.0 サーバーが組み込まれています。 (推奨学習: swoole ビデオ チュートリアル )
Swoole は、インターネット、モバイル通信、エンタープライズ ソフトウェア、オンライン ゲーム、モノのインターネット、車両のインターネット、スマート ホームなどで広く使用できます。田畑。 PHP Swoole をネットワーク通信フレームワークとして使用すると、企業の IT 研究開発チームの効率が大幅に向上し、革新的な製品の開発にさらに集中できます。
Swoole には、下部に非同期ノンブロッキングのマルチスレッド ネットワーク IO サーバーが組み込まれています。 PHP プログラマはイベント コールバックを処理するだけでよく、基礎となる層について気にする必要はありません。
Nginx/Tornado/Node.js などの完全な非同期フレームワークとは異なり、Swoole は完全な非同期と同期の両方をサポートします。
同期を使用する場合と非同期を使用する場合。ここで説明してください。
関数開発に非同期コールバックを使用することに同意しません。関数とロジックを実装するための従来の PHP 同期方法は、最もシンプルで最良のソリューションです。 Node.js のようにどこでも呼び出すと、保守性と開発効率が犠牲になるだけです。
ただし、FTP、チャット サーバー、smtp、プロキシ サーバーなどの非同期の使用が適している場合もあります。サーバー プログラムは主に通信とディスクの読み書きに重点を置き、その後に関数とビジネス ロジックが続きます。
「PHP の拡張関数 API はすべて同期です」という記述は正しくありません。実際、同期がブロックされる主な場所は、ネットワーク呼び出しとファイルの読み書きです。
たとえば、mysql_query は mysql データベース サーバーと通信する必要があり、curl はネットワークを呼び出す必要があり、file_get_contents はファイルの読み取りと書き込みを行う必要があり、他の fopen/fwrite/fread/fgets/fputs は API をブロックしています。さらに、PHP の array/string/mbstring およびその他の関数はノンブロッキングです。
swoole は非同期ソケット クライアント、非同期 mysql を提供し、1.6.12 では非同期ファイルの読み書き、非同期 DNS クエリ機能も提供します。さらに、タスク/終了 API が提供されており、IO ブロッキングの問題を完全に解決できます。
以上がスウールは非同期ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。