IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  网络编程

摘要:线程池模式一般分为两种:L/F领导者与跟随者模式、HS/HA半同步/半异步模式。HS/HA半同步/半异步模式:分为三层,同步层、队列层、异步层,又称为生产者消费者模式,主线程处理I/O事件并解析然后再往队列丢数据,然后消费者读出数据进行应用逻辑处理;优点:简化编程将低层的异步I/O和高层同步应用服务分离,且没有降低低层服务性能。集中层间通信。缺点:需要线程间传输数据,因此而带来的动态内存分配,数据拷贝,语境切换带来开销。高层服务不可能从底层异步服务效率中获益。L/F领导者跟随者模式:在LF线程池中,线程可处在3种线程状态之一: leader、follower或processor。处于leade 阅读全文

posted @ 2013-05-13 09:35 Ady Lee 阅读(309) 评论(0) 推荐(0)

摘要:1、标准定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器(或回调函数);事件分离器负责将请求事件传递给事件处理器。两个与事件分离器有关的模式是Reactor和Proactor。Reactor模式采用同步IO,而Proactor采用异步IO。在Reactor中,事件分离器负责等待文件描述符或socket为读写操作准备就绪,然后 阅读全文

posted @ 2013-05-13 09:24 Ady Lee 阅读(181) 评论(0) 推荐(0)

摘要:ACE将网络编程进行了模式化,以便你不必每次都重复相同的代码。网络编程需要处理的事情多括中断,并发,多线程等,程序格式相对固定,但是健壮的网络程序则相对复杂。为了处理这些情形,ACE内建了几个网络编程的模式。最基本的模式当然是直接使用sock进行单客户单服务器单线程的一对一模型,这种模式相对简单,也和ACE关系不大,但是这样编写的程序不能处理并发的情况,可用性很差或者说基本不具有可用性。最简单的处理并发但是却使用单线程的框架在ACE中称为Reactor框架,在这种框架下,Reactor扮演了协调员的角色,应用程序编制者需要首先写好各种各样的事件处理程序,然后在Reactor中进行登记,Reac 阅读全文

posted @ 2013-05-13 09:13 Ady Lee 阅读(289) 评论(0) 推荐(0)

摘要:leader/follower线程模型关键点:(1)只有1个leader线程,可以有若干的follower线程;(2)线程有3种状态:leading/processing/following;(3)有一把锁,抢到的就是leading;(4)事件来到时,leading线程会对其进行处理,从而转化为processing状态;(5)处理完成后,尝试抢锁,抢到则又变为leading,否则变为followering;(6)followering不干事,就是抢锁,力图成为leading;到网上找了一个状态变迁图,如下:与普通的线程池比,这种模型无需消息队列,其他优点,可参考网上论文。 阅读全文

posted @ 2013-05-10 11:21 Ady Lee 阅读(267) 评论(0) 推荐(0)