child_process は Node.js_node.js でマルチプロセスを実装します
var http = require('http');
関数 fib (n) {
If (n 1 を返します;
} else {
fib(n - 2) fib(n - 1);
を返します。 }
}
var server = http.createServer(function (req, res) {
var num = parseInt(req.url.substring(1), 10);
res.writeHead(200);
res.end(fib(num) "n");
});
サーバー.listen(8000);
上記の例は、フィボナッチ数列計算サービスを提供します。この計算は非常に時間がかかり、シングルスレッドであるため、同時に複数のリクエストがある場合、これは child_process によって解決できます。 fork() この質問
これは公式 Web サイトからの例です。これにより、fork() の機能をよりよく理解できます
var cp = require('child_process');
var n = cp.fork(__dirname '/sub.js');
n.on('メッセージ', function(m) {
console.log('親がメッセージを受け取りました:', m);
});
n.send({ hello: 'world' });
上記のコード スニペットを実行した結果:
親がメッセージを受け取りました: { foo: 'bar' }
CHILD がメッセージを受け取りました: { hello: 'world' }
sub.jsの内容は以下のとおりです。
process.on('メッセージ', function(m) {
console.log('子供がメッセージを受け取りました:', m);
});
process.send({ foo: 'bar' });
子プロセスでは、プロセス オブジェクトに send() メソッドがあり、メッセージを受信するたびにメッセージ オブジェクトをパブリッシュします
少し混乱するのは、child.send() によって送信されたメッセージは process.on() メソッドによって受信され、process.send() メソッドによって送信されたメッセージは child.on() によって受信されることです。メソッド
この例を参照すると、フィボナッチ データを提供する最初のサービスを改善して、各リクエストが処理する個別の新しいプロセスを持つようにすることができます
var http = require('http');
var cp = require('child_process');
var server = http.createServer(function(req, res) {
var child = cp.fork(__dirname '/fibonacci-calc.js');//各リクエストは新しい子プロセスを生成します
child.on('メッセージ', function(m) {
res.end(m.result 'n');
});
var input = parseInt(req.url.substring(1));
child.send({input : input});
});
サーバー.listen(8000);
フィボナッチ計算.js
関数 fib(n) {
If (n 1 を返します;
} else {
fib(n - 2) fib(n - 1);
を返します。 }
}
process.on('メッセージ', function(m) {
Process.send({result: fib(m.input)});
});
サービスを開始した後、http://localhost:8080/9 にアクセスして、9 のフィボナッチ数列の値を計算します
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

同時実行性の高いプログラミング言語である Golang の組み込みコルーチン メカニズムとマルチスレッド操作により、軽量のマルチタスクが可能になります。ただし、マルチプロセス処理シナリオでは、異なるプロセス間の通信と共有メモリがプログラム開発の重要な問題になります。この記事では、Golangで複数プロセス間で共有メモリを実現する応用方法を紹介します。 1. Golang でマルチプロセスを実装する方法 Golang では、fork、os.Process、

ノードが npm コマンドを使用できない理由は、環境変数が正しく設定されていないためです。解決策は次のとおりです: 1. 「システムのプロパティ」を開きます; 2. 「環境変数」->「システム変数」を見つけて、環境を編集します。変数; 3.nodejs フォルダーの場所を見つけます; 4.「OK」をクリックします。

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

当初、JS はブラウザ側でのみ動作していたため、Unicode でエンコードされた文字列の処理は簡単でしたが、バイナリ文字列や非 Unicode エンコード文字列の処理は困難でした。バイナリは、コンピュータのビデオ/オーディオ/プログラム/ネットワーク パッケージの最低レベルのデータ形式です。

フロントエンド アプリケーション開発に Node.js を使用するにはどうすればよいですか?次の記事では、Node でフロントエンド アプリケーションを開発する方法 (プレゼンテーション層アプリケーションの開発を含む) を紹介します。今日私が共有したソリューションは単純なシナリオ向けであり、フロントエンド開発者がコーディング経験がなくても、Node.js に関する背景知識や専門知識を習得することなく、いくつかの単純なサーバーサイド開発タスクを完了できるようにすることを目的としています。
