了解 NodeJS 和非阻塞 IO
所以,我最近被注射了Node病毒,它在编程世界中传播得非常快。
我对它的“非阻塞IO”方法着迷,并且确实自己尝试了几个程序。
但是,我目前无法理解某些概念。
我需要外行人的答案(来自Java背景的人)
1. 多线程和非阻塞 IO。
让我们考虑一个实际方案。比方说,我们有一个用户可以注册的网站。下面是代码。
..
..
// Read HTTP Parameters
// Do some Database work
// Do some file work
// Return a confirmation message
..
..
在传统编程语言中,上述情况以顺序方式发生。而且,如果有多个注册请求,Web 服务器将创建一个新线程,其余的都是历史记录。当然,程序员可以创建自己的线程,同时在第 2 行和第 3 行上工作。
在 Node 中,据我所知,第 2 行和第 3 行将并行运行,而程序的其余部分将执行,解释器每隔 “x” 毫秒轮询一行 2 和 3 行。
现在,我的问题是,如果Node是一种单线程语言,那么在执行程序的其余部分时,第2行和第3行的工作是什么?
2. 可扩展性
我最近读到,LinkedIn已经将Node作为其移动应用程序的后端,并看到了巨大的改进。
谁能解释一下它是如何产生如此大的影响的?
3. 适应其他编程语言
如果人们声称Node在性能方面有很大的不同,为什么其他编程语言没有采用这种非阻塞IO范式呢?
我确定我错过了一些东西。只有你能解释我并用一些链接指导我,才会有帮助。
谢谢。