自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风尘

记录那些随风飘逝的点点尘埃....

  • 博客(4)
  • 收藏
  • 关注

原创 服务器网络模型(4)---网络框架模型

在I/O模型的讨论中,我们没有引入线程的概念,也没有区分其对accept和read的不同行为,我们在这里将他们引入I/O模型中,并与线程池模型组合,将会看到很多有趣的网络框架模型。同样,在这里我们不讨论I/O模型是Reactor还是Proactor,除非有特殊需要。 1.单线程模型               如上图所示,所有的处理过程都在一个线程中,这种模型下能做到零数据拷贝,零切换(

2011-12-30 18:37:22 4366

原创 服务器网络模型(3)---工作线程与线程池模型

工作线程负责请求的具体处理,也与具体的服务器功能相关。实际上,多个线程的组织一般是松散的,好的设计应该完全避免各线程之间的干扰,同时减少线程的切换(如果工作线程不存在阻塞I/O和长耗时处理过程,建议线程数少于CPU核数)。在不考虑I/O的情况下,线程池一般有两种实现,【半同步/半异步】和【领导者/跟随者】模式。 半同步/半异步模型        关于半同步/半异步的解释可以参考POSA2,简单

2011-12-30 18:08:54 4818

原创 服务器网络模型(2)---服务器的请求处理流程

服务器的请求处理大致可以分为以下几个阶段:        前面的I/O模型负责了【事件分离】阶段,【处理请求】阶段由工作线程来完成,而【断包】阶段在不同的模型中会选择前靠或者后靠,因为断包和具体的服务器协议有关,因此难以在框架阶段做更多的假设(定长包头协议和流式协议是完全不同的处理方式),根据不同的网络框架,断包是紧靠【事件分离】还是紧靠【处理请求】,它是受一定限制的。

2011-12-30 18:06:10 3734

原创 服务器网络模型(1)--I/O模型与I/O复用

基本的I/O分为阻塞式和非阻塞式,而在非阻塞的情况下,又可进一步分为同步和异步,归类下来,分为三种: l        阻塞式:以read()为例,它是停等式的读,在fd不可读时,会阻塞住线程继续等下去。一般高并发服务器比较少用。 l        同步非阻塞:它解决了阻塞式中停等的问题,在fd不可读时,会立即返回失败。一般结合一个统一的I/O复用机制(比如select、epoll)来对多fd

2011-12-30 18:03:33 4267

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除