首页 > 其他 > 详细

libuv源码分析

时间:2017-01-31 23:56:18      阅读:432      评论:0      收藏:0      [点我收藏+]

项目开发过程中经常使用了基于libuv库封装的库接口来实现异步处理,一直没仔细研究过这些接口的内部如何实现,因此也就没有掌握它的设计思想。今天花了点时间研究了其事件循环内部的一些过程,总算有了一些理解,理解还不够深刻,先记录下来:

1、循环流程

技术分享

2、它的整体结构基于事件循环,简单的说就是外部的接口(如uv_write)其实是对内层的一个个请求,并没有做真正的事,这些请求都先存储在内部一个请求队列中,在事件循环(uv_run())中,再从请求队列中取出他们(uv_process_reqs),然后做具体的事情,做完了利用回调函数通知调用者,这样一来,所有的外部接口都可以变成异步的。

3、定时器的实现采用了最小堆的数据结构实现

4、内部采用了epoll 实现IO多路复用

 

参考链接:http://www.cnblogs.com/watercoldyi/p/5682344.html

              http://www.cnblogs.com/watercoldyi/p/5675180.html

libuv源码分析

原文:http://www.cnblogs.com/chaser24/p/6359627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!