javascript - nodejs回调代码已同步

标签 javascript node.js multithreading

我正在学习 Nodejs 的优缺点来制作我的新项目。我仍然不清楚一个疑问,即回调函数中的代码是同步的还是线程安全的?

我知道nodejs正在使用单线程及其在回调函数内的其他进程中的切换执行。但是,如果第一个回调请求需要时间,而第二个请求包含不同的数据,那么它会造成严重破坏吗?

如果它的线程安全意味着每次它在回调函数中创建新线程?

最佳答案

您不必担心 JavaScript 代码中的线程安全和类似问题。所有的 javascript 都在主线程上执行。事实上,node 中的几乎所有操作都发生在同一个主线程上(除了少数任务,如 DNS 和文件 I/O,它们使用 libuv 中的线程池,但这些任务都通过队列回发到主线程,当主线程到达事件循环结束时读取)。

但是,从技术上讲,其他问题(例如竞争条件)可能仍然会出现在 JavaScript 中,但根据我的经验,这种情况并不常见。

关于javascript - nodejs回调代码已同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30467675/

相关文章:

java - 什么启发式使用 TPL 来确定何时使用多核

javascript - js Date 太多聪明的行为

node.js - 将字符串附加到 AWS Lambda 中的文本文件 Nodejs

linux - mmap:使用多线程时的性能

javascript - Node.js + 向第三方服务发送 API 请求

node.js - Nodejs,mongodb - 使用 $nin 或 $in 作为对象 ID 或 _id

ios - 在后台 Context 上保存 NSManagedObject 时出现问题

javascript - .notRequired 在 yup 字符串上不起作用,如果字符串为空并且仍然抛出错误

javascript - 如何为 'string' JavaScript 设置颜色

javascript - 当子组件触发父组件的状态更改时,如何防止父组件重新渲染