linux
文章平均质量分 59
凑崎sana
这个作者很懒,什么都没留下…
展开
-
muduo--Reactor的关键构成
Reactor(muduo中主要涉及Eventloop,Poller,Channel)一个事件循环对应一个IO线程,IO线程执行EventLoop事件主循环,该主循环loop调用IO复用器poller监听事件集合,并将就绪事件通过事件分发器Channel执行相应的事件回调。1、Eventloop事件循环:反应器(reactor):负责IO和定时器事件的分派。关键函数:void EventLoop:...原创 2018-07-08 21:29:01 · 253 阅读 · 0 评论 -
muduo--TimerQueue定时器
传统的Reactor是通过控制select和poll的等待时间来实现定时,libevent中就是这么实现的,现在Linux中提供了timerfd,timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景,采用文件描述符实现定时有利于统一事件源。 主要有几个类-----Timer定时器包含...原创 2018-07-17 16:12:40 · 253 阅读 · 0 评论 -
muduo--EventLoop处理线程安全的问题
为了方便用户使用定时器接口,增加了几个函数,这几个函数都转而调用TimeQueue::addTimer(),这几个函数没有做特别的处理,是允许跨线程使用。 这样一来会带来线程安全性方面的问题,muduo的解决方法不是加锁,而是把对TimeQueue的操作转移到IO线程来进行,EventLoop::runInLoop(const Functor& cb)函数,参数cb是回调函...原创 2018-07-26 14:14:21 · 740 阅读 · 0 评论