ホームページ > ウェブフロントエンド > jsチュートリアル > ノードイベントループの一般的なプロセスに関する簡単な説明

ノードイベントループの一般的なプロセスに関する簡単な説明

青灯夜游
リリース: 2021-10-28 09:54:01
転載
2371 人が閲覧しました

この記事では、Node.js のイベント ループについて簡単に説明し、Node.js イベント ループの大まかなシーケンスを見てみましょう。みんな!

ノードイベントループの一般的なプロセスに関する簡単な説明

現在使用しているアプリケーションのほとんどがイベント駆動型であることは誰もが知っています。アプリケーションとの対話の過程で、クリックなどの多くのイベントが生成されます。 、ダブルクリック、トリプルクリックなど、ファイルの読み取りが完了したり、特定のタスクが実行されたときに多くのイベントが発生します。

Node.js が単一プロセスおよび単一スレッドであることは誰もが知っていますが、イベント メカニズムと切り離すことのできない高い同時実行性を実現できます。具体的には、イベント ループを通じて実装され、非同期コールバック インターフェイスとイベント ドライバーを通じて高い同時実行性を実現できます。 [推奨学習: "nodejs チュートリアル "]

イベント ループ

Node.js が単一スレッドで実行されている場合、これは次と同等です。 ""Dead" ループに入ると、各非同期イベントのコールバック関数は、携帯電話でガールフレンドをチェックするのと同じです。ガールフレンドが「悪いこと」 (イベント) が起こったことに気付いた場合、彼女はあなたと喧嘩するでしょう (コールバック関数を呼び出します) - 喧嘩機能)、あなたが喧嘩を引き起こすこれらのもの(イベント)を見なくなるまで、私はあなたの携帯電話を見るのをやめます(無限ループから抜け出します)。

イベント ループは通常、対応する操作をオペレーティング システムに渡して処理します。現在のオペレーティング システムが基本的にマルチスレッドであることは誰もが知っています。言い換えれば、Node.js という名前のこのガールフレンドは、通常、私たちの携帯電話を見ているだけではなく、あなたの携帯電話を監視するためにプロの監視チームを雇っていることもわかっています。このようにして、監視チームの複数人があなたの携帯電話情報を確認することができ(オペレーティングシステムのバックグラウンドで処理されます)、情報の一部が処理されると、すぐにガールフレンドに通知されます(操作が完了すると、Node. js にはすぐに通知されます)、その後、あなたのガールフレンドは次の情報に従って通知されます。 情報の性質により、実行すべき内容がワーク キューに送信されます (Node.js は、関連するコールバック関数をポーリング キューに追加します)。次に、それらを 1 つずつ実行します。

これは、Node.js のイベント ループの簡略図です:

ノードイベントループの一般的なプロセスに関する簡単な説明

上の図では、各ステージに FIFO 実行可能コールバック関数 Queue があります。通常、イベント ループがいずれかのステージに入ると、そのステージの操作が実行され、その後、キューの終わりまたはコールバック数の制限に達するまで、そのステージのキュー内のコールバックが実行されます。 、その後、イベント ループは次のステージに進み、前後に循環します。

この図によると、イベント ループの順序は大まかに次のとおりであることがわかります。

データの受信 (受信データ) -> ポーリング -> チェック -> ;コールバックを閉じる ( close callback)->Timers (タイマー)->Pending callbacks (pending callbacks)->Idle (idle, prepare)->Poll (poll)

その他のプログラミング 関連知識については、次を参照してください。 プログラミングコース! !

以上がノードイベントループの一般的なプロセスに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート