- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十五章高性能网络服务程序设计
Linux C程序基础与实例讲解/book/search_pub.php?category=01key2=%C1%F5%B1%F9order=sort_xtime_desc刘冰,/book/search_pub.php?category=01key2=%D5%D4%CD%A2%CC%CEorder=sort_xtime_desc赵廷涛,/book/search_pub.php?category=01key2=%C9%DB%CE%C4%BA%C0order=sort_xtime_desc邵文豪,/book/search_pub.php?category=01key2=%CB%EF%D0%CB%D2%E5order=sort_xtime_desc孙兴义PPT制作:my2005lb、tingtaozhao欢迎访问云点:/第十五章 高性能网络服务程序设计2011/12/8内容导读多进程网络服务多线程网络服务线程池高性能分类单线程重复式在主服务线程里进行阻塞式等待,侦听当前到来的客户连接。若当前处于服务空闲状态,则转入连接服务状态,即为当前连接提供服务,当服务结束时,关闭与客户端连接套接字,并转入服务空闲状态,同时继续等待新到连接;若发现当前处于连接服务状态,则当前连接要进入排队队列等待服务。实现简单,但每次只能为一个用户提供服务高性能分类单线程重复式高性能分类多进程网络服务利用Linux系统中的父子进程关系为多用户提供并发服务,来一个用户,启动一个服务进程。优点是方法通用,有很多成功的服务软件均采用这种模式。缺点是每次启动并关闭子进程会带来很大的开销,在大用户量并发的前提下,会也为不小的负担;另外父子进程间数据共享、同步等具体逻辑实现上也会有一定的困难。高性能分类多进程网络服务高性能分类多线程网络服务在主服务线程里进行阻塞式等待,在绑定的端口进行侦听;若当前有连接到来,则启动一个新线程为其服务,服务结束后,释放线程资源。优点是便捷,高效,缺点是仍存在动态线程申请与释放,也是有一定的开销,若存在大用户量在线,可能会带来很大的线程间切换开销。高性能分类多线程网络服务高性能分类多线程池网络服务先创建一批资源,若有用户到来时,直接分配已创建好,减少系统在频繁创建资源时的开销。具有较高性能。主服务线程创建即定数量的服务线程,同时在指定端口进行侦听;若当前有新连接到来,则从线程池中找出空闲的服务线程,为其服务,服务完毕,线程不进行释放,重新放回线程池;若当前线程池均已满,则将当前的连接加入等待队列。高性能分类多线程池网络服务高性能分类异步IO多路复用是一种非阻塞的方式,应用程序不用因IO的操作而进入阻塞状态。系统在内核级进行缓存数据,当存在可读或可写的数据时,主动向应用程序发送通知。系统开销小,不用创建和维护线程或进程队列,IO多路复用技术在Linux中应用比较多,有时会结合前面几种模式共同使用,达到更好的加速效果。高性能分类异步IO多路复用客户端设计命令名功能add加法功能minus减法功能divide除法功能multiply乘法功能help帮助功能exit退出功能客户端功能客户端设计逻辑流程客户端设计通信格式设计报文格式:typedef struct mathopt{ int oprate; float value1; float value2;}mopt;多进程网络服务程序演示基本流程1. 初始化服务套接字,绑定在本地端口;2. 服务程序进入侦听过程;3. 等待客户端连接,若当前有连接到来,1)若套接字号大于0,则转向4;2)若套接字小于0,则继续等待下一次连接;4. 调用fork函数,为新连接启动服务进程,判断fork返回值,1)若为0,则转向5;2)若大于0,则转向6;3)若小于0,则转向7;5. 当前为父进程,关闭子套接字,同时转向3;6. 当前为子进程,调用子进程服务函数,若服务完毕则退出;多线程网络服务程序演示基本流程1. 初始化服务套接字,绑定在本地端口;2. 服务程序进入侦听过程;3. 等待客户端连接,若当前有连接到来,1)若套接字号大于0,则转向4;2)若套接字小于0,则继续等待下一次连接;4.创建服务线程,同时转向3;线程池服务程序原理分析系统在初始化时,创建一定数量的服务线程,并使它们处于空闲状态,若当前有新用户到来,系统先查找当前有无空闲线程,若有则立即为其分配;若没有,则将新用户加入待服务队列,并在其他用户结束服务时,再重新为其分配服务线程。改进方案一:动态创建新的服务线程。改进方案二:增加线程资源回收机制。线程池服务程序设计方案1. 系统在初始化时,开辟MAX_NUM个的线程(默认为20),组成服务线程池;2. 每个线程均有二个状态,一个空闲状态,另一个是工作状态,每个线程均有一块属于自己公共数据区域,这块数据区域
您可能关注的文档
最近下载
- 2025届中考语文文言文阅读技巧阅读考点2— 实词用法及意义 课件(共13张PPT).pptx VIP
- 基于核心素养培养的高中数学单元教学研究——以“指数函数与对数函数”单元为例.docx VIP
- 《高等数学》全册教案教学设计.doc VIP
- 中国地质大学《生产与作业管理》在线作业二答卷.pdf VIP
- 07S906 给水排水构筑物设计选用图 经典图集.pdf
- 高尔基在人间教学课件.ppt VIP
- 学堂在线 医学英语词汇进阶 章节测试答案.docx VIP
- KDL体育与健康课程.pptx VIP
- 2025中华护理学会团体标准——成人患者医用粘胶相关性皮肤损伤的预防及护理.pptx
- 氨氮废水AO工艺计算书.xlsx VIP
原创力文档


文档评论(0)