版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、muduo_net库源码分析第二十七章1类图2ChannelChannel是selectable IO channel,负责注册与响应IO 事件,它不拥有file descriptor。Channel是Acceptor、Connector、EventLoop、TimerQueue、TcpConnection的成员,生命期由后者控制。3时序图4时序图5定时器函数选择定时函数,用于让程序等待一段时间或安排计划任务:sleep alarm usleep nanosleep clock_nanosleep getitimer / setitimer timer_create / timer_setti
2、me / timer_gettime / timer_delete timerfd_create / timerfd_gettime / timerfd_settime6定时器函数选择timerfd_* 入选的原因:sleep / alarm / usleep 在实现时有可能用了信号 SIGALRM,在多线程程序中处理信号是个相当麻烦的事情,应当尽量避免nanosleep 和 clock_nanosleep 是线程安全的,但是在非阻塞网络编程中,绝对不能用让线程挂起的方式来等待一段时间,程序会失去响应。正确的做法是注册一个时间回调函数。 getitimer 和 timer_create 也是用
3、信号来 deliver 超时,在多线程程序中也会有麻烦。timer_create 可以指定信号的接收方是进程还是线程,算是一个进步,不过在信号处理函数(signal handler)能做的事情实在很受限。 timerfd_create 把时间变成了一个文件描述符,该“文件”在定时器超时的那一刻变得可读,这样就能很方便地融入到 select/poll 框架中,用统一的方式来处理 IO 事件和超时事件,这也正是 Reactor 模式的长处。7定时器函数选择#include int timerfd_create(int clockid, int flags);int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value);int tim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卡压式涂覆碳钢管施工指导书
- 2026年增强现实医疗报告
- 2026年家纺行业大数据应用报告
- 2026年智慧社区智能养老平台创新报告
- 小学阶段学生数字素养评价与学校信息化教学融合实践探究教学研究课题报告
- 2026年时尚零售数字化创新报告
- 陕西省延安市吴起县吴起高级中学2026年普通高中高三第一次诊断性测试化学试题含解析
- 肺部受累的原发性小血管炎:临床特征、误诊分析与诊疗进展
- 肺癌虚证患者预后与肺癌性疲乏的多维度探究:基于中医理论与临床实践
- 肺癌新辅助治疗后手术并发症与术后生存率的相关性研究:现状、挑战与展望
- 室内质量控制与室间质量评价管理制度与操作规程
- 2025年江苏淮安涟水县卫生健康委员会所属事业单位公开招聘工作人员42名笔试历年典型考题及考点剖析附带答案详解试卷2套
- 一年级语文下册看图写话范文50篇
- 国铁集团招聘考试试题
- 新型建筑材料 课件 第10章 智能混凝土
- 2026年普通高考考务人员测试附答案
- 安徽省中考物理考试大纲解析
- 急诊护理中的沟通技巧与人文关怀
- T∕CHIA 63-2025 医疗机构信息化建设项目验收标准
- 高中研学管理制度
- 2025中国电建集团山东电力建设第一工程有限公司招聘笔试历年难易错考点试卷带答案解析试卷3套
评论
0/150
提交评论