#このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューターSwoole コルーチンでできることswoole では、コルーチンを同時実行性の高いサービスに使用できます。コルーチン モードを使用するサービスのフォールト トレランス率が大幅に向上します。特定のインターフェイスの障害によってサービスがクラッシュすることはありません。また、これを使用することもできますインスタント メッセージングとチャット用。これにより、通信が完全にブロックされず、各メッセージが即座に処理されることが保証されます。
コルーチンの適用可能なシナリオ
フラッシュ セールス システム、高性能 API インターフェイス、RPC サーバーなどの同時実行性の高いサービスはコルーチン モードを使用し、サービスのフォールト トレランス率は次のようになります。が大幅に増加し、特定のインターフェイスに障害が発生しても、サービス全体が崩壊することはありません。 クローラーは非常に大きな同時実行機能を実現でき、非常に遅いネットワーク環境でも帯域幅を効率的に利用できます。 IM チャット、ゲーム サーバー、モノのインターネット、メッセージ サーバーなどのインスタント メッセージング サービスは、メッセージ通信が完全にノンブロッキングであり、各メッセージ パケットが即座に処理されることを保証します。コルーチンとは何ですか?
コルーチン (Coroutine) はユーザー モード スレッドとも呼ばれ、プリエンプションではなくコラボレーションを通じて切り替えます。プロセスやスレッドと比較して、コルーチンのすべての操作はユーザー モードで完了でき、作成コストや切り替えコストが低くなります。コルーチンはプロセスを補完するもの、または補完的な関係です。 「ユーザーモード スレッド」とは何かを理解するには、まず「カーネル モード スレッド」が何であるかを理解する必要があります。カーネル状態スレッドはオペレーティング システムによってスケジュールされます。スレッド コンテキストを切り替えるときは、まず前のスレッドのコンテキストを保存してから、次のスレッドを実行する必要があります。条件が満たされたら、前のスレッドに切り替えてコンテキストを復元します。コルーチンにも同じことが当てはまりますが、ユーザー モード スレッドはオペレーティング システムによってスケジュールされるのではなく、プログラマによってスケジュールされる点が異なります。これは、いわゆるユーザー モード スレッドです。コルーチンとスレッドの違い
Swoole のコルーチンは、基礎となる実装ではシングルスレッドであるため、同時に動作するコルーチンは 1 つだけであり、コルーチンはシリアルです。これはスレッドとは異なり、オペレーティング システムによって複数のスレッドが複数の CPU にスケジュールされ、並列実行されます。 1 つのコルーチンが実行されていると、他のコルーチンは動作を停止します。現在のコルーチンは、ブロッキング IO 操作を実行するとハングし、基礎となるスケジューラーがイベント ループに入ります。 IO 完了イベントが発生すると、基礎となるスケジューラーはイベントに対応するコルーチンの実行を再開します。 CPU マルチコアの利用は、依然として Swoole エンジンのマルチプロセス メカニズムに依存しています。 推奨学習:以上がswooleコルーチンは何ができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。