1 行のコードを含む単純なノード プログラムは、すべてのコードを実行した直後に終了します。
console.log('hello');
ただし、ポートでリッスンしている http サーバー プログラムは、すべてのコードを実行した後も終了しません。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
だから私の質問は、何がこの違いを生んだのですか? すべてのコードを実行した後、最初のプログラムが終了したのに、2 番目のプログラムは引き続き実行されたのはなぜですか?
私はJavaで理解しています。仕様では、最後の非デーモンスレッドが終了するとJVMが終了すると言われています。では、nodejs の世界ではどのような仕組みになっているのでしょうか。