day196-事件循环的常见问题和错误观点

要点

  1. Node.js 是完全单线程?
  2. 其他线程?
  3. 事件循环是种栈结构?

    Node.js 是完全单线程?

    Node 单线程运行,但是Nodejs中一些标准库函数为了保证程序速度和性能并不是运行在同一个线程上(例如:fs函数)。

其他线程运行在什么地方?

既然NOdejs不是单线程,那么其他线程运行在什么地方呢?Nodejs使用名为libuv的特殊库模块来执行异步操作。此库还和Node的后台逻辑一起使用,用来管理被称为libuv线程池的特殊线程池。

该特殊线程池由四个线程组成,用于委派对于事件循环来说太重(长时间运行,过于昂贵)的操作。

事件循环是种栈结构

在线程中可能涉及一些类似栈的结构,但其实是事件循环由一系列的阶段所组成,每个阶段都有自己的特定任务,所有阶段都以循环重复的方式去处理。

文章作者: lmislm
文章链接: http://lmislm.com/2019/07/28/2019-07-28/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LMISLMのBlog