ホームページ >PHPフレームワーク >Swoole >スウールは非同期ですか?

スウールは非同期ですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-09 10:17:371879ブラウズ

スウールは非同期ですか?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。