我正在学习Node.js,并且已经阅读到Node.js是单线程且非阻塞的。
我在JavaScript方面有很好的背景并且确实了解回调,但是我真正不了解的是Node.js如何实现单线程并在后台运行代码。那不是矛盾的吗?
因为如果Node.js是单线程的,那么此时它仍然只能执行一项任务。因此,如果它在后台运行某些内容,则必须停止当前任务以在后台处理某些内容,对吗?
实际上如何运作?
对于NodeJS,“后台”的真正含义是将事情放到待办事项列表中以备后用。只要Node完成其工作,它就会从待办事项列表的顶部选择。这就是为什么做任何实际上被阻止的事情都会破坏您的一天的原因。“后台”发生的所有事情(实际上只是在待办事项列表上等待)都将停止,直到阻止任务完成为止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句