您好,欢迎光临本网站![请登录][注册会员]  
文件名称: rock.tsf.jar
  所属分类: Web开发
  开发工具:
  文件大小: 34kb
  下载次数: 0
  上传时间: 2009-03-18
  提 供 者: badbo******
 详细说明: rock.tsf 的描述 包rock.tsf的设计目标是为独立的应用服务提供了一个框架和运行环境。利用此包中提供的类,开发人员可以轻易的派生出实现不同应用的TCP Server。此包中包含4个最基础的类,Server,ManagerService,MonitorPool,Responder,除此之外,开发人员为实现不同Server所派生出来的类,也应该放到此包中。 service框架的运行机制是: 对应每一个不同的server,因该有一个独立的Server在运行。Server是每一个server的启动入口程序(具体使用方法参见此类的帮助文件),他启动之后首先实例化一个ManagerService对象的实例;同时通过实例化MonitorPool对象启动两个单独的线程用来监视线程池和两个连接队列;然后监听指定的端口,当收到客户端的一个socket请求时,他即把此请求交给ManagerService处理。 ManagerService类负责管理和调度线程以及socket连接,使之达到最大的使用效率。在此类中维护一个线程池,一个无状态 socket连接队列,以及一个有状态实例队列。当Server把一个新的socket请求送给ManagerService 时,ManagerService首先 通过调用getResponder( )从线程池中得到一个空闲的线程,然后通过此线程实例的respondRequest(Socket request) 方法把socket连接传给此线程,同时激活此线程实例以处理此socket请求。每个线程实例通过调用必须被子类重载的doService( )方法,来实现各自Server对每个请求的相应。doService( )在每次执行之后返回一个状态值,他包括三种状态:连接结束(Over),无状态连接(StateLess),有状态连接(StateFul)。每个线程实例在doService()调用结束之后,调用ManagerService的disposeResponder()方法,同时把自己的引用和返回的状态值传给ServiceManager对象。ManagerService根据返回状态值的类型分别进行处理: 1. Over.:连接处理结束,释放对应的socket连接,把处于休眠状态的线程实例放到线程池中. 2. StateLess:无状态连接,即连接虽然没有结束,但下一次调用和这一次之间没有关系。调用线程实例的getSocket( )方法,得到socket连接对象,把它加入到无状态socket连接队列中。同时把处于休眠状态的线程实例放到线程池中。 3. StateFul:有状态连接。此时socket连接和线程实例不能分开,ServerManager把带着socker对象的处于休眠状态的线程对象放到有状态实例队列中。 由MonitorPool对象实现的一个工作线程,会定时的查找无状态socket连接队列和有状态实例队列。当检查到一个无状态socket有一个新的请求时,即调用getResponder()方法得到一个空闲实例来处理它,处理机制和上面所描述的处理新的socket请求相同。当检查到一个有状态实例有一个新的请求时,会调用此实例的wakeup()方法,唤醒此线程继续处理新来的请求。 当开发人员需要实现一个新的Server时,他所要做的是需要实现类Responder的一个子类。Responder是一个从Thread类派生出来的抽象类,它有一个抽象方法doService()必须在子类中重载,开发人员根据所要实现的server的需要在此方法中进行不同的处理。 最后,MonitorPool除了实现一个工作线程对上面所描述的两个队列进行检测外,还实现另一个工作线程对线程池进行定期的检查,以便回收多余的空闲线程。 作者:张卫广 版本:1.0 2009-01-01 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: