- 博客(3)
- 收藏
- 关注
原创 muduo--EventLoop处理线程安全的问题
为了方便用户使用定时器接口,增加了几个函数,这几个函数都转而调用TimeQueue::addTimer(),这几个函数没有做特别的处理,是允许跨线程使用。 这样一来会带来线程安全性方面的问题,muduo的解决方法不是加锁,而是把对TimeQueue的操作转移到IO线程来进行,EventLoop::runInLoop(const Functor& cb)函数,参数cb是回调函...
2018-07-26 14:14:21
787
原创 muduo--TimerQueue定时器
传统的Reactor是通过控制select和poll的等待时间来实现定时,libevent中就是这么实现的,现在Linux中提供了timerfd,timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景,采用文件描述符实现定时有利于统一事件源。主要有几个类-----Timer定时器包含...
2018-07-17 16:12:40
284
原创 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
292
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人