基于事件的 NIO 多线程服务器 附件为高性能网络通讯
?
同时整个服务端的流程处理,建立于事件机制上。在?[接受连接->读->业务处理->写?->关闭连接?]这个 过程中,触发器将触发相应事件,由事件处理器对相应事件分别响应,完成服务器端的业务处理。?
下面我们就来详细看一下这个模型的各个组成部分。
- 监听器(Serverlistener):这是一个事件接口,定义需监听的服务器事件,如果您需要定义更多的事件,可在这里进行扩展。?
- 事件处理器的注册。为了能让事件处理器获得服务线程的事件通知,事件处理器需在触发器中注册。?
?- 主控服务线程(Server):主控线程将创建读、写线程池,实现监听、接受客户端请求,同时将读、写通道提交由相应的读线程(Reader)和写服务线程 (Writer) ,由读写线程分别完成对客户端数据的读取和对客户端的回应操作。
- 读线程(Reader):使用线程池技术,通过多个线程读取客户端数据,以充分利用网络数据传输的时间,提高读取效率。
- 启动程序:
通过例子我们可以看到,基于事件回调的 NIO 多线程服务器模型,提供了清晰直观的实现方式,可让开发者从 NIO 及多线程的技术细节中摆脱出来,集中精力关注具体的业务实现。?