mina学习笔记

mina中最核心的 几个 接口

IoService 
IoFilterChain
IoFilter
IoHandler
IoSession 


IoService :进行I/O操作 ,其子接口IoAcceptor 服务端 IoConnectors 客户端
IoFilterChain:IoFilter的容器 ,主要作用是 将 读和写数据的时候 触发的事件 发送到 容器内的 IoFilter处理.
IoFilter : 用来截获 IoHandler 的事件 ,类似 servletfilter
IoHandler:处理mina发出的事件 ,这里是业务逻辑所在处
IoSession:一个代表两个节点的连接 ,IoSession 与 IoFilterChain 是1-to-1 关系,IoSession 通常绑定一些用户定义的数据 以及 对应的 handler (用于回调)

我的理解是:
IoService 是网络的最前端 是个出口 和入口
当客户端与服务器连接的时候 会建立一个 IoSession 同时关联其 IoFilterChain
IoService 接收到消息 则会 经过 与IoSession关联的 IoFilterChain 容器中的所有filter 过滤一遍
相反 在 IoSession 写数据的时候 经过 所有filter 过滤一遍 最后写出到 客户端。

IoHandler 在接收到 数据后 负责业务逻辑上的处理 ,处理完后 可以通过其关联的 IoSession 将数据写回到 客户端。


在 transport nio 的实现中  大量使用 生成者消费者模式 实现多线程。
生产者消费者模式 主要是 利用一个 公用的 Queue ,生成者生产数据放入 Queue中 ,消费者 从Queue中消费数据。

你可能感兴趣的:(多线程,Mina)