javascript - 为什么应该避免使用事件循环执行 CPU 密集型任务?

标签 javascript node.js

在一篇教程中,我读到 Node 的事件循环方法主要用于 I/O 密集型任务。就像从硬盘读取或使用网络一样。但不适用于CPU 密集型任务。

上述言论的具体原因是什么?

或者反过来问:

如果您占用 Node.js 来执行 CPU 密集型任务,会发生什么情况?

最佳答案

Node 使用少量线程来处理许多客户端。 Node 中有两种类型的线程:一种是事件循环(又称为主循环、主线程、事件线程等),另一种是工作池中的 k 个工作线程池(又称为线程池)。

如果线程花费很长时间来执行回调(事件循环)或任务(工作线程),我们将其称为“阻塞”。当代表一个客户端工作的线程被阻止时,它无法处理来自任何其他客户端的请求。

您可以在official nodejs guide中阅读更多相关信息。

关于javascript - 为什么应该避免使用事件循环执行 CPU 密集型任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55701468/

相关文章:

mysql - 如何转义整个 sql 字符串而不是转义每个参数?

javascript - 保护网络应用程序免受信息泄露

javascript - 在 Javascript 中创建复制按钮

node.js - 多个查询运行 N1QL couchbase 并出现 Nodejs 错误内存不足情况

python - CloudKit JS 通过 Node : Cannot register for notifications

javascript - Handlebars 中的子串助手

javascript - 无法从从 sql 数据库读取的 JavaScript 函数获取返回数组

javascript - Node.js 组合来自多个文件的模块/导出

javascript - 如果日期时间与 API 响应匹配,则显示/隐藏消息

Javascript/jQuery HasLoaded 或等价物?