mina流程图如下:
线程模型会涉及到三个线程池,
一,数目为一, 监听socket的线程。 包括服务器主socket和所有accept到的socket
二, ioprocess线程池(如图),处理io的读写,数目一般为cpu核心+1
new NioSocketAcceptor(Runtime.getRuntime().availableProcessors()+1);
三,executorfilter线程池(如图,数目根据性能配置,这个线程池处理业务逻辑,防止业务逻辑时间过久,堵塞io, 虽然放在filter中,但往往是放在filter的最后
acceptor.getFilterChain().addLast("modelthreadpool", executorFilter);
其中,如果第二三个线程池中任意一个占满,则不能建立任何session, 在IoHandlerAdapter中,只能有sessionCreated, 不能到达sessionOpened