NodeJS等待事件时发生了什么

时间:2012-11-22 16:19:56

标签: node.js

  

可能重复:
  Internals of node.js. How does it actually work

我是NodeJS的新手,我对事件循环的工作原理感到困惑。

首先,如果我有一个空文件(假设它叫做blank.js),并且我用节点(node blank.js)运行它,那么节点运行该文件并立即退出。为什么事件循环没有开始,是什么让它开始?

其次,当在NodeJS上运行服务器时,服务器实际上在等待输入(即客户端请求)。它在等待时发生了什么,它是如何等待的(它不是在睡觉,我确信它会阻止事件循环)。已经描述了节点的方式,它是偶然的(因此它正在等待一个事件),但它是如何做到的呢?

最后,Ryan Dahl将Node描述为单个堆栈。我认为由于Node的事件性质,函数调用没有像递归调用中那样的堆栈。这是对的吗?

总结一下我的问题:

  1. 什么启动事件循环,它是如何开始的?
  2. 当Node等待时(这是非阻塞的),这是如何完成的?
  3. 函数内存堆栈对于用于回调的函数会发生什么变化?
  4. 我已阅读有关NodeJS的书籍,是的,我意识到Nodes是异步单线程非阻塞IO。我只是不知道内部是如何工作的,没有一本书告诉我这个。

0 个答案:

没有答案