libuv
跨平台异步 I/O 的底层支撑库,用 C 编写,封装操作系统事件通知机制(epoll、kqueue、IOCP),提供统一异步 API,是 Node.js 事件循环的实现基础
时间轴 (近 90 天)
libuv 是用 C 编写的跨平台异步 I/O 库,封装了 Linux 的 epoll、macOS 的 kqueue、Windows 的 IOCP,并向上提供统一的异步 API。
libuv 的线程池默认有 4 个线程,用于处理文件 I/O、DNS 解析等阻塞操作。
Node.js 的事件循环实现在 libuv 之中,包含 timers、pending callbacks、poll、check、close callbacks 等多个阶段。
libevent相比glib、libuv等同类库,历史更久、体积更小、对旧平台和交叉编译的支持更好。
macOS上的FSEvents、Grand Central Dispatch以及libuv在BSD/macOS平台的实现均以kqueue为基础构建
Node.js自2009年诞生,基于V8引擎和libuv事件循环架构
Node.js诞生于2009年,基于V8引擎和libuv事件循环架构
全部知识事实 (8)
Uvicorn基于uvloop(libuv的Python绑定)和httptools构建,这两个底层库都是用C语言编写的
90%待验证libuv 的线程池默认有 4 个线程,用于处理文件 I/O、DNS 解析等阻塞操作。
50%待验证libuv 是用 C 编写的跨平台异步 I/O 库,封装了 Linux 的 epoll、macOS 的 kqueue、Windows 的 IOCP,并向上提供统一的异步 API。
50%待验证Node.js 的事件循环实现在 libuv 之中,包含 timers、pending callbacks、poll、check、close callbacks 等多个阶段。
50%待验证libevent相比glib、libuv等同类库,历史更久、体积更小、对旧平台和交叉编译的支持更好。
50%待验证macOS上的FSEvents、Grand Central Dispatch以及libuv在BSD/macOS平台的实现均以kqueue为基础构建
50%待验证Node.js自2009年诞生,基于V8引擎和libuv事件循环架构
50%待验证Node.js诞生于2009年,基于V8引擎和libuv事件循环架构
50%