了解node.js

我已经开始阅读node.js. 我有几个问题:

  1. 节点是否比multithreading更好,仅仅是因为它节省了我们关心死锁和减less线程创build的开销,还有其他因素呢? Node在内部使用线程,所以我们不能说它节省了线程创build开销,只是它在内部进行pipe理。

  2. 为什么我们说这个节点对多核处理器不好? 它在内部创build线程,所以它必须得到多核的好处。 为什么我们说这对CPU密集型应用程序不好呢? 我们总是可以为CPU密集型任务分配新的进程。

  3. 只有函数调用线程callback或还有其他情况?

  4. 非阻塞I / O也可以使用线程来实现。 主线程可能随时准备接收新的请求。 那么有什么好处?

  1. 正确。

  2. Node.js通过subprocess , 集群等核心进行扩展。

  3. callback只是开发人员用来实现asynchronous方法的通用约定。 没有技术上的原因,你必须包括他们。 例如,您可以让所有的asynchronous方法使用promise。

  4. 一切节点都可以用线程来完成,但是node.js的asynchronousIO所涉及的代码/开销要比multithreading代码要less。 例如,你不需要创build一个线程实例或每次像Java一样运行 。