node.js は C で開発されています。 JS実行プラットフォーム(実行環境)です。その構文は JavaScript ですが、サーバー上で実行される点が異なります。証拠: ノードのソース コードは GitHub Web サイトにあります。プロジェクト ルート ディレクトリの src フォルダーにある .cc サフィックスで終わる多くのファイルにはクラスという単語が含まれています (C にはクラスがありますが、C にはありません)
Node.js は、クライアント接続ごとに新しいスレッドを作成せず、1 つのスレッドのみを使用します。ユーザーが接続すると、内部イベントがトリガーされ、ノンブロッキング I/O およびイベント駆動メカニズムを通じて、Node.js プログラムは巨視的に並列処理されます。 Node.js を使用すると、8 GB のメモリを搭載したサーバーで 40,000 人を超えるユーザーの接続を同時に処理できます。
Node.js はノンブロッキング I/O 機構を使用しているため、データベースにアクセスするコードを実行すると、すぐに後続のコードの実行に切り替わり、データベースの戻り結果の処理コードが配置されます。コールバック関数を利用できるため、プログラムの実行効率が向上します。
I/O が完了すると、I/O 操作を実行しているスレッドにイベントの形式で通知が送信され、スレッドはこのイベントのコールバック関数を実行します。非同期 I/O を処理するには、スレッドにイベント ループが必要で、未処理のイベントがあるかどうかを常にチェックし、順番に処理します。
Node では、クライアントが接続の確立、データの送信、その他の動作を要求すると、対応するイベントがトリガーされます。 Node では、一度に 1 つのイベント コールバック関数のみを実行できますが、イベント コールバック関数の実行中に、他のイベント (新しいユーザーの接続など) の処理に切り替えて、戻って実行を続けることができます。オリジナルイベントのコールバック関数、この処理機構を「イベントループ」機構と呼びます。
Node.js の最下層は C です (V8 も C で書かれています)。 基礎となるコードのほぼ半分は、イベント キューとコールバック関数キューの構築に使用されます。イベント駆動型を使用してサーバー タスクのスケジューリングを完了することは、天才だけが思いつくものです。針の先のダンスは、一本の糸で多くの仕事をこなす使命を担っています。
Node.js はどのようなアプリケーションの開発に適していますか?
I/Oは得意、計算は苦手。 Node.js はタスクのスケジューリングに最適であるため、ビジネスに多くの CPU 計算が含まれる場合、実際にはこの計算が単一スレッドをブロックすることになり、Node 開発には適していません。
Node.js は、アプリケーションが大量の同時 I/O を処理する必要があり、クライアントに応答を送信する前にアプリケーション内で非常に複雑な処理を実行する必要がない場合に非常に適しています。 Node.js は、Web ソケットを操作して、接続が長いリアルタイムの対話型アプリケーションを開発するのにも非常に適しています。
Node.js は独立した言語ではなく、言語でもプラットフォームでもある PHP、JSP、Python、Perl、Ruby とは異なり、Node.js はプログラミングに JavaScript を使用し、JavaScript エンジン上で実行されます。 (V8)。
以上がNode.js の基礎となる言語は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。