多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### libuv ``` 跨平台的异步IO库,由C/C++语言实现,Node中的非阻塞IO以及事件循环的底层机制,都是由libuv来实现的, Node只负责调用libuv接口,等数据返回后再执行回调方法 ``` ![](https://box.kancloud.cn/01dac7e503035ae97ce6c062f8065917_555x294.png) ``` 事件循环分为6个不同阶段,其中每个阶段都维护一个回调函数的队列,在不同阶段,事件循环会 处理不同类型的事件 1. Timers: 用来处理setTimeOut()和setInterval()的回调 2. I/O callbacks: 大多数的回调方法都在这个阶段执行,除了timers, close和setImmediate事件的回调 3. idle,prepare: 仅仅在内部使用,我们不管它 4. Poll: 轮训,不断检查有没有新的IO事件,事件循环可能会在这里阻塞 5. Check: 处理setImmediate()事件的回调 6. close callbacks: 处理一些close相关的事件 ```