【发布时间】:2017-12-11 22:54:39
【问题描述】:
Node.js 是单线程的。 Javascript V8 引擎和一些内部库是多线程的。对于 I/O,节点将 I/O 委托给可能是多线程的操作系统。
如果我的 node.js 应用程序正在连接到 redis 或 ,sql/mariadb 服务器,我假设我不需要 redis 或 mysql 的连接池。
作为开发人员,我创建了 1 个 redis 或 mysql 连接并重用它来发送/获取数据。当数据到达时,节点会调用回调来处理数据。
我了解 Java/.NET 的连接池,但它们是多线程的,因此 Java/.NET 中的连接池具有明显的优势。
我的问题是:当 node 是单线程时,为什么我们需要 node.js 中的连接池?它有什么好处吗? Node 会不会利用底层 OS 和 javascript 引擎的多线程特性,而开发者不必这样做?
谢谢
【问题讨论】: