ホームページ  >  記事  >  PHPフレームワーク  >  スウールコルーチンとはどういう意味ですか?

スウールコルーチンとはどういう意味ですか?

WBOY
WBOYオリジナル
2022-02-10 11:58:443387ブラウズ

Swoole コルーチンは、より軽量なスレッドです。スレッドには複数のコルーチンを含めることができます。コルーチンはスレッド内で実行されます。主に、スレッド内の競合リソースを協調動作に変換するために使用されます。 IO集中型のタスクを処理します。

スウールコルーチンとはどういう意味ですか?

#このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューター

swoole コルーチンの意味

まず、コルーチンについて話して、コルーチンの用途とその特徴を理解しましょう。

コルーチンはスレッドよりも軽量な存在です。プロセスが複数のスレッドを持つことができるのと同じように、スレッドも複数を持つことができます。コルーチン。コルーチンには次の特性があります。

  • ユーザー モード実行。プログラムによって完全に制御され、オペレーティング システム カーネルによって管理されません。

  • IO の処理に適用可能IO 集中型タスクとは、ここでは詳しくは紹介しませんが、CPU 集中型タスクとは主に異なります。

  • スレッド内の競合リソースを共同操作に変換します

  • チャネルを介したコルーチン間の通信

  • プロセスのコンテキスト切り替えとは対照的に、主にスレッド上で実行される少量のコンテキスト切り替えオーバーヘッドコルーチンはスタック リソースに保存されますが、コルーチンは非同期かつノンブロッキングであり、ユーザー モード スレッドのキュー タスクと同等です。チャネルをコールバックとして使用するだけでよく、その後 2 回待つ必要はありません。タスクが完了しました。リソースの取得

コルーチンは単にスレッドとして理解できますが、このスレッドはユーザー モードであり、オペレーティング システムの参加を必要としません。作成コスト、スレッドとは異なり、破壊と切り替えは非常に低いです。コルーチンはマルチコア CPU を利用できません。マルチコア CPU を利用したい場合は、Swoole のマルチプロセス モデルに依存する必要があります。

簡単に言うと、コルーチンは、より軽量な同時実行性を実現するために、スレッドの下でホストされるプログラマによって実装される、一種の協調的な軽量スレッドです。

プログラマの数が増加するにつれて、ボスも爆発的に成長し続けています。もちろん、スレッドは使いにくいと考え始めている人もいますが、どうすればよいでしょうか? もちろん、スレッドの概念に基づいて、より軽く、スターを騙すのに適した一連の軽量スレッドを実装します (実際、スレッドには複数のコルーチンを含めることができるため、コルーチンを完全にスレッドと見なすことはできません)

コルーチンとスレッドの違い

本質

Threadカーネル状態

コルーチン ユーザー状態

スケジューリング方法

スレッドのスケジューリング方法はシステム スケジューリングであり、一般的に使用されるスケジューリング戦略には、タイムシェアリング スケジューリングとプリエンプティブ スケジューリングが含まれます。率直に言って、スレッドのスケジューリングは完全に制御できません。

コルーチンのスケジューリング方法は協調スケジューリングであり、カーネルによって制御されず、自由なポリシー スケジューリングによって切り替えられます

推奨学習:

スウールチュートリアル

以上がスウールコルーチンとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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