TIL 029 | Node.js
Node.いわゆる
Node.jsを定義すると、非同期イベントがJavaScriptランタイム環境を駆動します.Node.jsは、Webブラウザに依存するJavaScriptを外部で実行できるCherome V 8エンジンを提供し、複数のオペレーティングシステム上で実行できる環境を提供します.
非同期イベント-ベース
ノードの場合、イベントはフロントエンド(クライアント)から受信された要求である.
ノード非同期処理イベントは、前のクライアントのリクエストが完了する前に、ノードが次のクライアントのリクエストを受信することを意味する.
既存の同期要求は、コードを1行1行実行します.したがって、1つのタスクにどれだけ時間がかかるかにかかわらず、最初のコードが実行された後、次のコードが実行されます.これにより、前の作業時間が長ければ長いほど、時間と資源の浪費が深刻になります.これは、1つのリクエストが完了するのを待つのではなく、別のタスクを同時に実行するために、異歩で克服することができます.
したがって、JavaScriptが単一スレッドとして実行されることに関連して、1つの時点で複数のリクエストを実行できます.
JavaScriptを実行すると、次の要素が役立ちます.
setTimeout(() => console.log('hello world!'));
console.log('hello javascript!');
// hello javascript!
// hello world!
hello world! 出力されたコードが上にあっても、後で出力されるコードが見えます.プロセスを理解し、
JavaScriptランタイム環境
ノードの単一スレッドはHeavy Loadの作業をC++で記述されたスレッドプールに渡す.単一スレッドはイベントを処理する役割を果たすだけです.前のクライアントからのリクエストが完了するのを待たずに次のリクエストを処理できるのは、Heavy Loadの作業がバックエンドの内部C++スレッドプールが担当するためです.したがって、ノードの単一スレッドは、複数のリクエストを同時に処理することができる.
JavaScriptランタイム環境の定義は次のとおりです.
JavaScriptで作成したソースコードを、CPUが理解できるマシン言語(ex.0と1からなるバイトコード)に変換し、プログラムメモリを管理するシステム.
このような環境を可能にしたのがChrome V 8エンジンです.Chrome V 8エンジンは、GoogleのChrome Webブラウザで実行されているエンジンであり、ブラウザを必要とせずに実行できる環境がノードであることを知っています.
上記の非同期イベント-ベースの処理はこのChrome V 8エンジンが担当します.すなわち,単一スレッドに基づく動作原理を理解し,JavaScriptでコードを記述すると,Chrome V 8エンジンはHeavy Loadの行うことを処理する.したがって、JavaScriptコードは、迅速で信頼性の高いアプリケーションの設計に使用されます.
references
https://chanyeong.com/blog/post/44
https://medium.com/day34/node-js-%EB%85%B8%EB%93%9C%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%96%A0%ED%95%9C-%EA%B8%B0%EB%8A%A5%EB%93%A4%EC%9D%B4-%EC%9E%88%EB%8A%94%EA%B0%80-1-98e49e1100ab
https://zereight.tistory.com/855
Reference
この問題について(TIL 029 | Node.js), 我々は、より多くの情報をここで見つけました https://velog.io/@ktg6360/TIL-029-Node.jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol