【问题标题】:Does node.js is creating an instance of a server for each client?node.js 是否正在为每个客户端创建一个服务器实例?
【发布时间】:2018-05-31 01:56:02
【问题描述】:

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

【问题讨论】:

    标签: node.js multithreading server instance clients


    【解决方案1】:

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

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

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

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

    【讨论】:

    • multithreaded web servers create a new thread for each client request 不完全是。这是一种旧方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2012-06-20
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多