1.1 多线程模式
由于本项目使用的 Apache Mina 的框架进行网络通信。当然其多线程模式也应该在 Mina 框架中体现出来。
为了理解多线程模式,首先要了解 Mina 的运作方式。
1.1.1 Mina 的通信过程
此次便于解说,假设客户端也是采用了 Mina 框架来进行,实际上本项目的客户端只是简单的使用了 windows 的 Socket 通信。在当前假设下,其通信过程如下图 16 所示。
图 16 Apache Mina 的通信过程
本项目只关注服务端,其服务端的通信过程如下:
1 、通过 SocketAcceptor 同客户端建立连接;
2 、链接建立之后 I/O 的读写交给了 I/O Processor 线程, I/O Processor 是多线程的;
3 、通过 I/O Processor 读取的数据经过 IoFilterChain 里所有配置的 IoFilter