在“专业NodeJS”中,我发现了这样一句话:“这个项目(NodeJS)不像其他服务器端JavaScript平台那样,所有的I/O原语都是事件驱动的,没有办法绕过它。”但是,据我所知,NodeJS是事件驱动的,而NodeJS中的流是事件驱动的。那么,有人能解释这句话吗?
发布于 2016-01-28 21:17:06
Node.js是一个异步事件驱动框架。在下面的"hello world“示例中,可以并发处理多个连接。每次连接时都会触发回调,但如果没有工作要做,Node将处于休眠状态。
const http = require('http');
const hostname = '127.0.0.1';
const port = 1337;
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});这与当今使用OS线程的更常见的并发模型形成了鲜明对比。基于线程的网络效率相对较低,并且很难使用。此外,Node的用户不用担心进程会死锁--没有锁。Node中几乎没有函数直接执行I/O,因此进程从不阻塞。
有关详细信息,请访问source。
https://stackoverflow.com/questions/35062392
复制相似问题