所以,我最近被注入了 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 范式?
我确定我错过了一些东西。只有您可以向我解释并通过一些链接指导我,才会有所帮助。
谢谢。