转:libuv介绍
一、简介
1.开源跨平台的异步IO库(网络异步、文件异步等),它是node.js的底层库。
2.官方网站:http://libuv.org。
3.事件循环模型:IOCP、epoll、kqueue、event ports。
4.管理的模块(异步TCP、UDP sockets、DNS解析、异步文件读写、信号处理、高性能定时器、进程/线程池)。
二、架构图
三、原理
1.异步:同时管理多个句柄请求。
2.loop循环等待所有的事件和句柄。
3.当其中有请求完成,loop就会监测到然后调用用户指定的回调函数。如:loop监听所有的socket,有数据来了,loop就会调相应回调函数。
四、libuv编程思想
1.创建一个对象,如:socket。
2.让loop管理这个对象。
3.指定一个回调函数,当有事件发生时调用这个回调函数(callback)。
libuv的编译
一、官方源码下载
1.可到 https://dist.libuv.org/dist 中选择各种版本。
2.源码下载链接(https://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz)。
二、vs创建项目
1.创建一个项目,并分好项目文件夹及项目筛选器。
2.将libuv源码中的include、src两个文件夹添加到相应的项目筛选器中。