摘要: muduo库是一个高质量的网络事件驱动库,使用的是非阻塞I/O 和多线程服务模型,这个模型中每一个I/O线程只有一个Reactor实例,处理读写和时间定时,激活的事件由回调方式提供用户处理业务逻辑。一个线程最多只有一个EventLoop 事件循环,而事件循环不停的监视着这些文件描述符,因此可以将不同 阅读全文
posted @ 2020-03-01 17:02 睡觉lc 阅读(302) 评论(0) 推荐(0)
摘要: bufferevent 是在libevent 的reactor的模式里存在的Proactor模式,在event的基础上维护了自己的一个buffer ,我们不再关心数据的读写实际的操作,bufferevent自己实现了缓冲的绑定,当有读数据就绪时,就调用buffer_read 读走数据,或者调用buf 阅读全文
posted @ 2020-03-01 15:16 睡觉lc 阅读(416) 评论(0) 推荐(0)
摘要: libevent 是一个基于reactor的模型,本事是个同步的,底层封装了select/epoll ,通过循环检测,如果有就绪事件,通知处理函数处理。 libevent 编程逻辑 调用event_init 创建event_base,一个event_base 相当于一个reactor实例 然后给这个 阅读全文
posted @ 2020-03-01 14:50 睡觉lc 阅读(520) 评论(0) 推荐(0)
摘要: 什么是Proactor模型? Proactor是一种异步I/O模型,在Proactor 中直接由事件分发者处理一个事件的读写,而实际的工作由操作系统完成,发起时,需要提供的参数:包括用于存放读的数据的缓冲区,读的数据的大小,以及需要存放外发的数据的缓冲区,以及请求完后的回调函数的信息。事件分离者,得 阅读全文
posted @ 2020-03-01 13:46 睡觉lc 阅读(726) 评论(0) 推荐(0)
摘要: 1 什么是Reactor 模型? reactor是一种处理并发的模式,将请求提交的一个或者多个服务处理业务,也就是说应用程序将接口注册到reactor反应堆上,当底层的复用器检测到了就绪事件,就会调用注册的接口处理业务。 而reactor模式框架包括: 事件源,Reactor 多路分发机制,事件处理 阅读全文
posted @ 2020-03-01 12:30 睡觉lc 阅读(577) 评论(0) 推荐(0)
摘要: 问:什么是I/O复用? 答:I/O复用就是让一个进程/或者线程,操作多个I/O,保证不会阻塞到某个特定的I/O.即一个进程可以处理多个请求,常见的I/O有select,poll,epoll(Linux特有)。 select: #include <sys/select.h> #include >sys 阅读全文
posted @ 2020-03-01 09:40 睡觉lc 阅读(204) 评论(0) 推荐(0)