Libuv教程
+ -

Libuv 与其它库比较

2019-09-09 0 0

libuv和Libevent、libev的比较

libuv常常用来和Libevent、libev之间相互比较。当然它们都是网络库,且都是c语言实现的异步事件库Asynchronousevent library).
在比较之前,我们先了解一下异步件的概念:

异步事件库本质上是提供异步事件通知(Asynchronous Event Notification,AEN)的。异步事件通知机制就是根据发生的事件,调用相应的回调函数进行处理。

事件(Event):事件是异步事件通知机制的核心,比如fd事件、超时事件、信号事件、定时器事件。有时候也称事件为事件处理器(EventHandler),这个名称更形象,因为Handler本身表示了包含处理所需数据(或数据的地址)和处理的方法(回调函数),更像是面向对象思想中的称谓。

事件循环(EventLoop):等待并分发事件。事件循环用于管理事件。

对于应用程序来说,这些只是异步事件库提供的API,封装了异步事件库跟操作系统的交互,异步事件库会选择一种操作系统提供的机制来实现某一种事件,比如利用Unix/Linux平台的epoll机制实现网络IO事件,在同时存在多种机制可以利用时,异步事件库会采用最优机制。

  • libevent :名气最大,应用最广泛,历史悠久的跨平台事件库;
  • libev :较libevent而言,设计更简练,性能更好,但对Windows支持不够好;
  • libuv :开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,linux下用libev实现,Windows下用IOCP实现;

0 篇笔记 写笔记

Libuv 与其它库比较
libuv和Libevent、libev的比较libuv常常用来和Libevent、libev之间相互比较。当然它们都是网络库,且都是c语言实现的异步事件库Asynchronousevent library).在比较之前,我们先了解一下异步件的概念:异步事件库本质上是提供异步事件通知(Asynchr......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!