NodeJS 网站说以下内容。重点是我的。
Node.js 是一个基于 Chrome 的 JavaScript 运行时构建的平台,用于轻松构建快速、可扩展的网络应用程序。Node.js 使用事件驱动的非阻塞 I/O 模型,使其轻量且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。
尽管我喜欢 NodeJS,但我不明白为什么它比 Python、Java 甚至 PHP 等现有技术更适合可扩展的应用程序。
据我了解,JavaScript 运行时始终作为 CPU 中的单个线程运行。然而,IO 可能使用可能依赖于内核提供的线程池的底层内核方法。
所以真正需要回答的问题是:
- 因为所有 JS 代码都将在单线程中运行 NodeJS 不适合 IO 较少且计算量很大的应用程序?
- 如果我正在使用 nodejs 编写一个 Web 应用程序,并且有 100 个打开的连接,每个连接都执行需要 100 毫秒的纯计算,那么其中至少一个需要 10 秒才能完成?
- 如果您的机器有 10 个内核,但如果您只运行一个 nodeJS 实例,那么您的其他 9 个 CPU 就坐不住了?
如果您还发布其他技术在这些情况下如何执行即 NodeJS,我将不胜感激。