libuv简介
1: 开源跨平台的异步IO库, 网络异步,文件异步等。 2: libuv主页: http://libuv.org/ 3: libuv是node.js的底层库; 4: libuv的事件循环模型: epoll, kqueue, IOCP, event ports; 异步 TCP 与 UDP sockets; DNS 解析 异步文件读写; 信号处理; 高性能定时器; 进程/线程池;
libuv架构图
libuv原理
1:异步: 在用户层同时管理多个句柄请求。 2: loop循环等待所有的事件和句柄,管理好所有的这些请求。 3: 当其中一个请求完成后,loop就会监测得到然后调用用户指定的回掉函数处理; 4: 例如loop监听所有的socket,有数据来了后,loop就会处理,然后转到用户指定的回掉函数。 5: libuv编写思想: 1> 创建一个对象, 例如socket; 2> 给loop管理这个对象; 3> 并指定一个回掉函数,当有事件发生的时候调用这个回掉函数, callback;
6: 1>像loop发送请求; 2>指定结束后的回掉