一个简单的单行代码节点程序在运行完所有代码后立即退出:
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');
所以我的问题是,是什么造成了这种差异?是什么让第一个程序在执行完所有代码后退出,而第二个程序继续存在?
我在Java中理解,规范说当最后一个非守护线程退出时,JVM退出。那么,nodejs 世界中的机制是什么?