การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ('http');
ฟังก์ชั่น fib (n) {
ถ้า (n <2) {
กลับ 1;
} อื่น {
return fib (n - 2) + fib (n - 1);
-
-
var server = http.createServer (ฟังก์ชั่น (req, res) {
var num = parseInt (req.url.substring (1), 10);
Res.writehead (200);
res.end (fib (num) + "/n");
-
Server.Listen (8000);
ตัวอย่างข้างต้นให้บริการการคำนวณลำดับ Fibonacci เนื่องจากการคำนวณนี้ค่อนข้างใช้เวลานานและเป็นเธรดเดียวจึงสามารถประมวลผลได้เมื่อมีการร้องขอหลายครั้งในเวลาเดียวกัน ปัญหานี้สามารถแก้ไขได้ผ่าน child_process.fork ()
นี่คือตัวอย่างในเว็บไซต์ทางการ ตัวอย่างนี้สามารถใช้เพื่อทำความเข้าใจฟังก์ชั่นของส้อม () ได้ดี
การคัดลอกรหัสมีดังนี้:
var cp = ต้องการ ('child_process');
var n = cp.fork (__ dirname + '/sub.js');
n.on ('ข้อความ', ฟังก์ชัน (m) {
console.log ('ผู้ปกครองได้รับข้อความ:', m);
-
N.Send ({Hello: 'World'});
ผลลัพธ์ของการดำเนินการตัวอย่างโค้ดด้านบน:
การคัดลอกรหัสมีดังนี้:
Parent Got Message: {foo: 'bar'}
Child Got Message: {สวัสดี: 'World'}
เนื้อหาของ sub.js มีดังนี้:
การคัดลอกรหัสมีดังนี้:
process.on ('ข้อความ', ฟังก์ชัน (m) {
console.log ('Child Got Message:', M);
-
process.send ({foo: 'bar'});
วัตถุกระบวนการมีวิธีการส่ง () ในกระบวนการเด็กและจะเผยแพร่วัตถุข้อความทุกครั้งที่ได้รับข้อความ
อะไรคืออาการวิงเวียนศีรษะเล็กน้อยคือข้อความที่ส่งโดย child.send () ได้รับโดยวิธี process.on () และข้อความที่ส่งโดยวิธีการส่ง () ได้รับวิธี child.on ()
อ้างอิงถึงตัวอย่างนี้เราสามารถปรับปรุงบริการแรกที่ให้ข้อมูล Fibonacci เพื่อให้แต่ละคำขอมีกระบวนการใหม่แยกต่างหากเพื่อจัดการ
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ('http');
var cp = ต้องการ ('child_process');
var server = http.createServer (ฟังก์ชั่น (req, res) {
var child = cp.fork (__ dirname + '/fibonacci-calc.js')
child.on ('ข้อความ', ฟังก์ชั่น (m) {
Res.end (M.Result + '/n');
-
var input = parseInt (req.url.substring (1));
child.send ({อินพุต: อินพุต});
-
Server.Listen (8000);
fibonacci-calc.js
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น fib (n) {
ถ้า (n <2) {
กลับ 1;
} อื่น {
return fib (n - 2) + fib (n - 1);
-
-
process.on ('ข้อความ', ฟังก์ชัน (m) {
process.send ({ผลลัพธ์: fib (m.input)});
-
หลังจากเริ่มต้นบริการไปที่ http: // localhost: 8080/9 เพื่อคำนวณค่าของลำดับ Fibonacci ที่ 9
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่าคุณจะชอบมัน