node.js是否为每个客户端创建服务器实例?

时间:2017-12-17 14:58:39

标签: node.js multithreading server instance clients

node.js是否为每个客户端创建node.js的实例,或者只有一个node.js服务器实例用于各种客户端,并且仅为每个客户端的路径创建唯一实例?

1 个答案:

答案 0 :(得分:1)

Nodejs没有为每个客户端创建新的服务器实例,也没有其他选项。

您可能正在考虑多线程,因为传统的多线程Web服务器会为每个客户端请求创建一个新线程,但是由于node.js运行的是单线程的JavaScript,因此答案是否定的 - 每个客户端请求由同一个线程处理。

这就是为什么Node.js和JavaScript通常与阻止这个词相关联的原因,指的是如果你编写需要很长时间才能完成的代码,它将阻止所有其他用户得到服务。但是,在执行I / O时,您不必担心阻塞,因为Node.js(JavaScript)是异步的 - 这意味着客户端请求在执行I / O操作(例如网络请求)时不会互相阻塞。磁盘读取。

要阅读有关单线程Node.js的更多信息,请参阅此S / O答案:Why is Node.js single threaded?