libuv是最初为NodeJS编写的跨平台支持库。 它围绕事件驱动的异步I/O模型进行设计。该库提供的不仅仅是在不同的I/O轮询机制上的简单抽象:“句柄”和“流”为套接字和其他实体提供了高级抽象; 还提供了跨平台文件I/O和线程功能。
深入的了解,可以扒libuv官网
libuv为用户提供了2个与事件循环相结合的抽象:句柄和请求。
句柄表示能够在活动时执行某些操作的长寿命对象。请求代表(通常)短暂的操作。
I/O(或事件)循环是libuv的中心部分
它建立了所有I/O操作的内容,它的意图是绑定到一个线程。只要每个运行在不同的线程中,就可以运行多个事件循环。
libuv事件循环(或涉及循环或句柄的任何其他API)不是线程安全的,除非另有说明。