javascript - Node.js - 单线程,非阻塞?

标签 javascript node.js nonblocking

我正在学习 Node.js,我读到 Node.js 是单线程和非阻塞的。

我在 JavaScript 方面有很好的背景,我确实了解回调,但我并不真正了解 Node.js 如何成为单线程并在后台运行代码。这不矛盾吗?

因为如果 Node.js 是单线程的,它仍然只能同时执行一项任务。因此,如果它在后台运行某些东西,它必须停止当前任务以在后台处理某些东西,对吗?

实际效果如何?

最佳答案

“在后台”对于 NodeJS 的真正含义是,事情会被放在待办事项列表中以备后用。每当 Node 完成它正在做的事情时,它都会从待办事项列表的顶部进行选择。这就是为什么做任何实际上被阻止的事情都会破坏你的一天。 “在后台”发生的所有事情(实际上只是在待办事项列表上等待)都会停止,直到阻塞任务完成。

关于javascript - Node.js - 单线程,非阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911478/

相关文章:

javascript - 默认情况下数组没有原型(prototype)吗?

node.js - 如何显示不同语言的页面?

multithreading - 在非阻塞 IO 中——IO 到底是什么?

php - Unix 套接字设置 O_NONBLOCK 以与 php-fpm get segmentfault 通信

java - 试图理解同步队列的机制

javascript - 关于JS嵌套if语句的更好解决方案

javascript - 为什么我不能分配 element.innerHTML?

javascript - 在我的javascript中,如何解决 "\u0026"、 "&"和 "&"之间的编码问题?

javascript - 如果存在则更新多个,否则为每个不存在的 LeadId 创建一个新文档

mysql - Sequelize 与同一个表的关联