Salinan kode adalah sebagai berikut:
var http = membutuhkan ('http');
fungsi fib (n) {
if (n <2) {
kembali 1;
} kalau tidak {
return 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");
});
server.listen (8000);
Contoh di atas memberikan layanan perhitungan urutan fibonacci. Karena perhitungan ini cukup memakan waktu dan merupakan utas tunggal, hanya satu yang dapat diproses ketika ada beberapa permintaan secara bersamaan. Masalah ini dapat diselesaikan melalui child_process.fork ().
Berikut adalah contoh di situs web resmi. Contoh ini dapat digunakan untuk memahami fungsi fork () dengan baik.
Salinan kode adalah sebagai berikut:
var cp = membutuhkan ('child_process');
var n = cp.fork (__ dirname + '/sub.js');
n.on ('pesan', fungsi (m) {
Console.log ('Parent Got Message:', m);
});
n.send ({hello: 'world'});
Hasil dari menjalankan cuplikan kode di atas:
Salinan kode adalah sebagai berikut:
Parent Got Message: {foo: 'bar'}
Anak mendapat pesan: {halo: 'world'}
Isi sub.js adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
Process.on ('Message', function (m) {
Console.log ('Child Got Message:', m);
});
process.send ({foo: 'bar'});
Objek proses memiliki metode kirim () dalam proses anak, dan itu akan mempublikasikan objek pesan setiap kali menerima pesan
Apa yang sedikit pusing adalah bahwa pesan yang dikirim oleh anak.
Mengacu pada contoh ini, kami dapat meningkatkan layanan pertama yang menyediakan data Fibonacci, sehingga setiap permintaan memiliki proses baru yang terpisah untuk menanganinya.
Salinan kode adalah sebagai berikut:
var http = membutuhkan ('http');
var cp = membutuhkan ('child_process');
var server = http.createServer (function (req, res) {
var child = cp.fork (__ dirname + '/fibonacci-calc.js');//each permintaan menghasilkan proses anak baru secara individual
child.on ('pesan', function (m) {
res.end (m.result + '/n');
});
var input = parseInt (req.url.substring (1));
child.send ({input: input});
});
server.listen (8000);
fibonacci-calc.js
Salinan kode adalah sebagai berikut:
fungsi fib (n) {
if (n <2) {
kembali 1;
} kalau tidak {
return fib (n - 2) + fib (n - 1);
}
}
Process.on ('Message', function (m) {
process.send ({hasil: fib (m.input)});
});
Setelah memulai layanan, kunjungi http: // localhost: 8080/9 untuk menghitung nilai urutan fibonacci 9.
Di atas adalah semua tentang artikel ini, saya harap Anda menyukainya.