今天意外在树莓派的include目录中翻到了一个叫做uv.h的头文件,甚是好奇,这又是什么神仙库?遂查阅之,大惊,确为神仙库啊!!!
~占坑~
https://github.com/libuv/libuv
https://github.com/Cocoonshu/Chinese-uvbook
什么是libuv
libuv是一个跨平台的异步IO支持库,它是Node.js的核心支持库,也是Luvit, Julia, pyuv的支持库。这是什么概率?换句话说,也就是大名鼎鼎的NodeJS是使用libuv作为其核心组件来搭建编写的,这也就是为什么NodeJS的核心特性是非阻塞式IO编程模型了。
libuv本身只是的支持库框架,它提供文件、网络、线程、进程、事件循环的异步调用框架,让代码可以以非阻塞的模型来编写,一切皆回调。
基本框架
libuv支持的特性如下:
- 基于操作系统支持的事件循环机制
- Linux基于epoll实现
- Windows基于IOCP实现
- MacOS/Unix基于kqueue实现
- freeBSD基于evports实现
- 异步TCP/UDP通信
- 异步DNS解析
- 异步文件读写
- 文件系统事件机制
- 基于ANSI控制字符的TTY
- IPC、管道通信
- 多进程
- 线程池
- 信号量处理
- 高分辨率时钟
- 多线程及同步操作
Github仓库:https://github.com/libuv/libuv
以下我们就基于文件、网络、线程、进程、事件这几个点来做个简单使用介绍吧
网友评论