我正在学习 Node.js,我读到 Node.js 是单线程和非阻塞的。
我在 JavaScript 方面有很好的背景,我确实了解回调,但我并不真正了解 Node.js 如何成为单线程并在后台运行代码。这不矛盾吗?
因为如果 Node.js 是单线程的,它仍然只能同时执行一项任务。因此,如果它在后台运行某些东西,它必须停止当前任务以在后台处理某些东西,对吗?
实际效果如何?
最佳答案
“在后台”对于 NodeJS 的真正含义是,事情会被放在待办事项列表中以备后用。每当 Node 完成它正在做的事情时,它都会从待办事项列表的顶部进行选择。这就是为什么做任何实际上被阻止的事情都会破坏你的一天。 “在后台”发生的所有事情(实际上只是在待办事项列表上等待)都会停止,直到阻塞任务完成。
关于javascript - Node.js - 单线程,非阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911478/