我正在学习 Node.js,并且我读到 Node.js 是单线程且非阻塞的。
我有很好的 JavaScript 背景,并且确实了解回调,但我不太了解 Node.js 如何成为单线程并在后台运行代码。这不是很矛盾吗?
因为如果 Node.js 是单线程的,它仍然只能同时执行一项任务。因此,如果它在后台运行某些内容,它必须停止当前任务以在后台处理某些内容,对吧?
这实际上是如何运作的?
对于 NodeJS 而言,“在后台”的真正含义是,事情会被放在待办事项列表中以供以后使用。每当 Node 完成它正在做的事情时,它就会从待办事项列表的顶部进行选择。这就是为什么做任何实际上是阻塞的事情都会毁掉你的一天。 “在后台”发生的所有事情(实际上只是在待办事项列表上等待)都会停止,直到阻塞任务完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)