学习一下muduo网络库(二)

muduo中Reactor设计模式的实现------eventloop

muduo中的eventloop采用one eventloop per thread设计思想,并明确每个eventloop中注册的回调函数都在eventloop线程中调用

eventloop loop()函数运行的时序图
在这里插入图片描述
Channel的底层实现存放了用于poll(2)的fd,同时也指定了Channel将作用于的eventloop

eventloop中添加了定时器后的时序图
在这里插入图片描述

除了定时器功能,muduo还为eventloop添加了一个EventLoop::runInLoop(const Functor & cb)函数,Functor是void()类型的函数回调,该函数保证cb将会在eventloop线程中调用,如果对应线程阻塞在poll(2)系统调用中,该函数会尝试唤醒线程。

eventloop中loop()函数的执行顺序图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值